sig   module type OrderedType =     sig       type t       val compare : Kwlookup.OrderedType.t -> Kwlookup.OrderedType.t -> int     end   module type S =     sig       type key       type 'a t       val empty : 'Kwlookup.S.t       val is_empty : 'Kwlookup.S.t -> bool       val cardinal : 'Kwlookup.S.t -> int       val mem : Kwlookup.S.key -> 'Kwlookup.S.t -> bool       val find : Kwlookup.S.key -> 'Kwlookup.S.t -> 'a       val singleton : Kwlookup.S.key -> '-> 'Kwlookup.S.t       val add : Kwlookup.S.key -> '-> 'Kwlookup.S.t -> 'Kwlookup.S.t       val remove : Kwlookup.S.key -> 'Kwlookup.S.t -> 'Kwlookup.S.t       val fold :         (Kwlookup.S.key -> '-> '-> 'b) -> 'Kwlookup.S.t -> '-> 'b     end   module Map :     functor (Ord : OrderedType->       sig         type key = Ord.t         type 'a t         val empty : 'a t         val is_empty : 'a t -> bool         val cardinal : 'a t -> int         val mem : key -> 'a t -> bool         val find : key -> 'a t -> 'a         val singleton : key -> '-> 'a t         val add : key -> '-> 'a t -> 'a t         val remove : key -> 'a t -> 'a t         val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b       end   module Alist :     functor (Ord : OrderedType->       sig         type key = Ord.t         type 'a t         val empty : 'a t         val is_empty : 'a t -> bool         val cardinal : 'a t -> int         val mem : key -> 'a t -> bool         val find : key -> 'a t -> 'a         val singleton : key -> '-> 'a t         val add : key -> '-> 'a t -> 'a t         val remove : key -> 'a t -> 'a t         val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b       end   module Hash :     functor (Ord : OrderedType->       sig         type key = Ord.t         type 'a t         val empty : 'a t         val is_empty : 'a t -> bool         val cardinal : 'a t -> int         val mem : key -> 'a t -> bool         val find : key -> 'a t -> 'a         val singleton : key -> '-> 'a t         val add : key -> '-> 'a t -> 'a t         val remove : key -> 'a t -> 'a t         val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b       end end