structure Environment : EnvironmentSig = struct exception Lookup datatype Environment = Env of (string*int) list val empty = Env [] fun lookup (Env((k,e)::t)) key = if (k = key) then e else lookup (Env t) key | lookup _ _ = raise Lookup fun enter (entry, Env entries) = Env(entry :: entries) end;