+val defaultT : record ref = ref SM.empty
+val defaultV : exp SM.map ref = ref SM.empty
+
+fun registerDefault (name, t, v) =
+ case SM.find (!defaultT, name) of
+ NONE => (defaultT := SM.insert (!defaultT, name, t);
+ defaultV := SM.insert (!defaultV, name, v))
+ | SOME _ => raise Fail "Duplicate default environment variable"
+
+fun tInit () = (TAction ((CRoot, dmy),
+ !defaultT,
+ StringMap.empty),
+ dmy)
+
+