+ val registerPre : ({user : string, nodes : string list, id : string, hostname : string} -> unit) -> unit
+ (* Register a callback for the beginning of a vhost block. *)
+
+ val registerPost : (unit -> unit) -> unit
+ (* Register a callback for the end of a vhost block. *)
+
+ val doPre : {user : string, nodes : string list, id : string, hostname : string} -> unit
+ val doPost : unit -> unit
+
+ val registerAliaser : (string -> unit) -> unit
+ (* Register a callback for an alternate hostname that is configured. *)
+
+ val logDir : {user : string, node : string, vhostId : string} -> string
+ (* Where is a vhost's log directory located? *)
+
+ val realLogDir : {user : string, node : string, vhostId : string} -> string
+ (* OK, where is it _really_ located? (Target of log syncing into AFS) *)
+
+ val defaults : (string * Ast.typ * (unit -> Ast.exp)) list
+ (* Default environment variables *)
+
+ val ssl : string option Env.arg
+ val webPlace : (string * string) Env.arg
+
+ val webNode : string -> bool