(* Abstract Data Type for Environments *) module type Env = sig type 'a env exception Bad_id val empty : 'a env val extend : 'a env -> string -> 'a -> 'a env val lookup : 'a env -> string -> 'a end