signature EnvironmentSig = sig type Environment val empty : Environment val lookup : Environment -> string -> int val enter : (string*int) * Environment -> Environment end