| 1 | extern val domain : string -> Domain => [Root]; |
| 2 | |
| 3 | extern val host : string -> string -> [Domain]; |
| 4 | |
| 5 | extern val vhost : string -> Vhost => [Domain] {DocRoot : string}; |
| 6 | |
| 7 | extern val directory : string -> ^Vhost & Directory => [Vhost]; |
| 8 | |
| 9 | extern val ssi : [^Vhost]; |
| 10 | extern val fancy : [Directory]; |
| 11 | extern val risky : [Vhost]; |
| 12 | |
| 13 | domain "hcoop.net" with |
| 14 | host "frumpkin" "1.2.3.4"; |
| 15 | host "bumpkin" "1.2.3.5"; |
| 16 | |
| 17 | vhost "www" where |
| 18 | DocRoot = "/home/boopie" |
| 19 | with |
| 20 | risky |
| 21 | end; |
| 22 | |
| 23 | DocRoot = "/etc/default"; |
| 24 | |
| 25 | vhost "smelly" with |
| 26 | directory "/etc/default/here" with |
| 27 | ssi; |
| 28 | fancy |
| 29 | end; |
| 30 | ssi |
| 31 | end; |
| 32 | |
| 33 | vhost "rank" with |
| 34 | ssi |
| 35 | end |
| 36 | end |