functor (Ord : Datatype.S) (Value : Value->   sig     type key = Ord.t     type value = Value.t     type rangemap     type t = rangemap     val ty : t Type.t     val name : string     val descr : t Descr.t     val packed_descr : Structural_descr.pack     val reprs : t list     val equal : t -> t -> bool     val compare : t -> t -> int     val hash : t -> int     val pretty_code : Format.formatter -> t -> unit     val internal_pretty_code :       Type.precedence -> Format.formatter -> t -> unit     val pretty : Format.formatter -> t -> unit     val varname : t -> string     val mem_project : (Project_skeleton.t -> bool) -> t -> bool     val copy : t -> t     val create : t -> key -> value -> t -> t     val empty : t     val is_empty : t -> bool     val add : key -> value -> t -> t     val singleton : key -> value -> t     val find : key -> t -> value     val remove : key -> t -> t     val mem : key -> t -> bool     val iter : (key -> value -> unit) -> t -> unit     val map : (value -> value) -> t -> t     val mapi : (key -> value -> value) -> t -> t     val mapii : (key -> value -> key * value) -> t -> t     val fold : (key -> value -> '-> 'a) -> t -> '-> 'a     val for_all : (key -> value -> bool) -> t -> bool     val exists : (key -> value -> bool) -> t -> bool     val filter : (key -> value -> bool) -> t -> t     val partition : (key -> value -> bool) -> t -> t * t     val cardinal : t -> int     val bindings : t -> (key * value) list     val min_binding : t -> key * value     val max_binding : t -> key * value     val choose : t -> key * value     val merge :       (key -> value option -> value option -> value option) -> t -> t -> t     val for_all2 :       (key -> value option -> value option -> bool) -> t -> t -> bool     val exists2 :       (key -> value option -> value option -> bool) -> t -> t -> bool     val iter2 :       (key -> value option -> value option -> unit) -> t -> t -> unit     val fold2 :       (key -> value option -> value option -> '-> 'a) -> t -> t -> '-> 'a     val fold_range :       (key -> Rangemap.fuzzy_order) ->       (key -> Rangemap.Value.t -> '-> 'a) -> t -> '-> 'a     val height : t -> int     val concerned_intervals :       (key -> key -> Rangemap.fuzzy_order) ->       key -> t -> (key * Rangemap.Value.t) list     exception Empty_rangemap     val lowest_binding : t -> key * Rangemap.Value.t     exception No_such_binding     val lowest_binding_above : (key -> bool) -> t -> key * Rangemap.Value.t     val add_whole :       (key -> key -> Rangemap.fuzzy_order) ->       key -> Rangemap.Value.t -> t -> t     val remove_whole : (key -> key -> Rangemap.fuzzy_order) -> key -> t -> t   end