containers := SM.insert (!containers, name, (befor, after))
fun container name = SM.find (!containers, name)
+val functions : (exp list -> exp option) SM.map ref = ref SM.empty
+fun registerFunction (name, f) =
+ functions := SM.insert (!functions, name, f)
+fun function name = SM.find (!functions, name)
+
local
val pr = ref (fn () => ())
in
NONE => raise Fail ("Unavailable environment variable " ^ name)
| SOME e =>
case arg e of
- NONE => raise Fail ("Bad format for environment variable " ^ name)
+ NONE => (Print.preface ("Unexpected value for " ^ name ^ ":",
+ Print.p_exp e);
+ raise Fail ("Bad format for environment variable " ^ name))
| SOME v => v
fun type_one func arg f =