Reduce toplevel environment decls and allow them in user config
[hcoop/domtool2.git] / src / env.sml
index 3b08094..4b5be9d 100644 (file)
@@ -219,8 +219,11 @@ val empty : env = (SS.empty, SM.empty, SS.empty, SM.empty)
 fun initialDynEnvTypes (_, _, _, ds) =
     SM.map (fn (t, e) => t) ds
 
-fun initialDynEnvVals (_, _, _, ds) =
-    SM.map (fn (t, v) => v) ds
+(* hack ahead: These are not reduced when declared and must be before
+   starting evaluation. Pass in reduceExp, and force an awkward
+   calling convention so no one thinks this is the Right Way (tm) *)
+fun initialDynEnvVals f (env as (_, _, _, ds)) =
+    SM.map (fn (t, v) => f env v) ds
 
 fun lookupType (ts, _, _, _) name = SS.member (ts, name)
 fun lookupVal (_, vs, _, _) name =