sig   type key = t   type 'a t   val create : int -> 'a t   val clear : 'a t -> unit   val reset : 'a t -> unit   val copy : 'a t -> 'a t   val add : 'a t -> key -> '-> unit   val remove : 'a t -> key -> unit   val find : 'a t -> key -> 'a   val find_all : 'a t -> key -> 'a list   val replace : 'a t -> key -> '-> unit   val mem : 'a t -> key -> bool   val iter : (key -> '-> unit) -> 'a t -> unit   val filter_map_inplace : (key -> '-> 'a option) -> 'a t -> unit   val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b   val length : 'a t -> int   val stats : 'a t -> Hashtbl.statistics   val iter_sorted :     ?cmp:(key -> key -> int) -> (key -> '-> unit) -> 'a t -> unit   val fold_sorted :     ?cmp:(key -> key -> int) -> (key -> '-> '-> 'b) -> 'a t -> '-> 'b   val iter_sorted_by_entry :     cmp:(key * '-> key * '-> int) -> (key -> '-> unit) -> 'a t -> unit   val fold_sorted_by_entry :     cmp:(key * '-> key * '-> int) ->     (key -> '-> '-> 'b) -> 'a t -> '-> 'b   val iter_sorted_by_value :     cmp:('-> '-> int) -> (key -> '-> unit) -> 'a t -> unit   val fold_sorted_by_value :     cmp:('-> '-> int) -> (key -> '-> '-> 'b) -> 'a t -> '-> 'b   val structural_descr : Structural_descr.t -> Structural_descr.t   val make_type : 'Type.t -> 'a t Type.t   val memo : 'a t -> key -> (key -> 'a) -> 'a   module Key :     sig       type t = key       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     end   module Make :     functor (Data : S->       sig         type t = Data.t t         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       end end