sig type key and +'a t val empty : 'a Map.S.t val add : Map.S.key ->'a ->'a Map.S.t ->'a Map.S.t val find : Map.S.key ->'a Map.S.t ->'a val remove : Map.S.key ->'a Map.S.t ->'a Map.S.t val mem : Map.S.key ->'a Map.S.t -> bool val iter : (Map.S.key ->'a -> unit) ->'a Map.S.t -> unit val map : ('a ->'b) ->'a Map.S.t ->'b Map.S.t val mapi : (Map.S.key ->'a ->'b) ->'a Map.S.t ->'b Map.S.t val fold : (Map.S.key ->'a ->'b ->'b) ->'a Map.S.t ->'b ->'b