* The type checker can be annoying, but I am not capable of the feats
of hacking required to make it expand externs at type checking
time (nor am I certain that's even a good idea)
* Feature idea: allow binding a name passed to registerFunction in
multiple `extern val' declarations. Extern already assumes the
extern will be correctly type, so there's no additional peril.
extern val you : your_user;
extern val defaultMailbox : email;
+extern val defaultMailUser : emailUser;
extern val defaultServerAdmin : email;
+(* The above are all "yourusername" *)
var SSL : ssl = no_ssl;
var CreateWWW : bool = true;
var DefaultA : bool = true;
var DefaultAlias : bool = true;
-var DefaultAliasSource : aliasSource = defaultSource;
+var DefaultAliasSource : aliasSource = userSource defaultMailUser;
var HandleMail : bool = true;
var AddMX : bool = true;
fn [] => SOME (EString (getUser ()), dl)
| _ => NONE)
+val _ = Env.registerFunction ("defaultMailUser",
+ fn [] => SOME (EString (getUser ()), dl)
+ | _ => NONE)
+
type soa = {ns : string,
serial : int option,