fun writeD nodes =
let
- val files = map (fn node => aliasesDF node) nodes
+ fun files () = map (fn node => aliasesDF node) nodes
in
- (fn s => app (fn file => #write file s) files,
- fn () => app (fn file => #writeDom file ()) files)
+ (fn s => app (fn file => #write file s) (files ()),
+ fn () => app (fn file => #writeDom file ()) (files ()))
end
fun openInAll base = foldl (fn (node, r) =>
Domain.domainsFile {node = node, name = base}))
SM.empty Domain.nodes
+fun reopenAliasesD () = (SM.app (fn {close, ...} => close ()) (!aliasesD);
+ aliasesD := openInAll "aliases.default")
+
val _ = Domain.registerBefore
- (fn _ => (aliases := openInAll "aliases";
- aliasesD := openInAll "aliases.default"))
+ (fn _ => (aliases := openInAll "aliases.base";
+ reopenAliasesD ()))
val _ = Domain.registerAfter
(fn _ => (SM.app (fn file => #close file ()) (!aliases);
write ": ";
writeTarget (write, t);
write "\n")
- | Default => (writeD "*@";
+ | Default => (reopenAliasesD ();
+ writeD "*@";
writeDomD ();
writeD ": ";
writeTarget (writeD, t);