--- /dev/null
+extern val domain : string -> Domain => [Root];
+
+extern val host : string -> string -> [Domain];
+
+extern val vhost : string -> Vhost => [Domain] {DocRoot : string};
+
+extern val directory : string -> ^Vhost & Directory => [Vhost];
+
+extern val ssi : [^Vhost];
+extern val fancy : [Directory];
+extern val risky : [Vhost];
+
+domain "hcoop.net" with
+ host "frumpkin" "1.2.3.4";
+ host "bumpkin" "1.2.3.5";
+
+ vhost "www" where
+ DocRoot = "/home/boopie"
+ with
+ risky
+ end;
+
+ DocRoot = "/etc/default";
+
+ vhost "smelly" with
+ directory "/etc/default/here" with
+ ssi;
+ fancy
+ end;
+ ssi
+ end;
+
+ vhost "rank" with
+ ssi
+ end
+end