sig   type ('a, 'b, 'c) t constraint 'c = [< `Read | `Write ]   val create : int -> ('a, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t   external of_table :     ('a, 'b) Hashtbl.t -> ('a, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t     = "%identity"   external to_table :     ('a, 'b, [ `Read | `Write ]) BatHashtbl.Cap.t -> ('a, 'b) Hashtbl.t     = "%identity"   external read_only :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('a, 'b, [ `Read ]) BatHashtbl.Cap.t = "%identity"   external write_only :     ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->     ('a, 'b, [ `Write ]) BatHashtbl.Cap.t = "%identity"   val length : ('a, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t -> int   val is_empty : ('a, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t -> bool   val add :     ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->     '-> '-> unit   val remove :     ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> '-> unit   val remove_all :     ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> '-> unit   val replace :     ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->     '-> '-> unit   val copy :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('a, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t   val clear : ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit   val find :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> '-> 'b   val find_all :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> '-> 'b list   val find_default :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> '-> '-> 'b   val find_option :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> '-> 'b option   val mem :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> '-> bool   val iter :     ('-> '-> unit) ->     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> unit   val fold :     ('-> '-> '-> 'c) ->     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> '-> 'c   val map :     ('-> '-> 'c) ->     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('a, 'c, [< `Read | `Write ]) BatHashtbl.Cap.t   val map_inplace :     ('-> '-> 'b) ->     ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit   val filter :     ('-> bool) ->     ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('key, 'a, [< `Read | `Write ]) BatHashtbl.Cap.t   val filter_inplace :     ('-> bool) ->     ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit   val filteri :     ('key -> '-> bool) ->     ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('key, 'a, [< `Read | `Write ]) BatHashtbl.Cap.t   val filteri_inplace :     ('key -> '-> bool) ->     ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit   val filter_map :     ('key -> '-> 'b option) ->     ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('key, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t   val filter_map_inplace :     ('key -> '-> 'a option) ->     ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit   val keys :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> 'BatEnum.t   val values :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> 'BatEnum.t   val enum :     ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->     ('a * 'b) BatEnum.t   val of_enum :     ('a * 'b) BatEnum.t -> ('a, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t   val print :     ?first:string ->     ?last:string ->     ?sep:string ->     ?kvsep:string ->     ('BatInnerIO.output -> '-> unit) ->     ('BatInnerIO.output -> '-> unit) ->     'BatInnerIO.output ->     ('b, 'c, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> unit   module Exceptionless :     sig       val find :         ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         '-> 'b option       val modify :         '->         ('-> 'b) ->         ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         (unit, exn) BatPervasives.result     end   module Labels :     sig       val add :         ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->         key:'-> data:'-> unit       val replace :         ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->         key:'-> data:'-> unit       val iter :         f:(key:'-> data:'-> unit) ->         ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> unit       val map :         f:(key:'-> data:'-> 'c) ->         ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         ('a, 'c, [< `Read | `Write ]) BatHashtbl.Cap.t       val map_inplace :         f:(key:'-> data:'-> 'b) ->         ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit       val filter :         f:('-> bool) ->         ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         ('key, 'a, [< `Read | `Write ]) BatHashtbl.Cap.t       val filter_inplace :         f:('-> bool) ->         ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit       val filteri :         f:(key:'key -> data:'-> bool) ->         ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         ('key, 'a, [< `Read | `Write ]) BatHashtbl.Cap.t       val filteri_inplace :         f:(key:'key -> data:'-> bool) ->         ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit       val filter_map :         f:(key:'key -> data:'-> 'b option) ->         ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         ('key, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t       val filter_map_inplace :         f:(key:'key -> data:'-> 'a option) ->         ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit       val fold :         f:(key:'-> data:'-> '-> 'c) ->         ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t ->         init:'-> 'c     end end