sig
  type ('a, 'b) t
  val get : ('a, 'b) OLinq_map.Build.t -> ('a, 'b) OLinq_map.map
  val add : ('a, 'b) OLinq_map.Build.t -> '-> '-> unit
  val add_multimap : ('a, 'b list) OLinq_map.Build.t -> '-> '-> unit
  val add_count : ('a, int) OLinq_map.Build.t -> '-> unit
  val update :
    ('a, 'b) OLinq_map.Build.t -> '-> f:('-> 'b) -> or_:'-> unit
  val of_hash :
    ?eq:('-> '-> bool) ->
    ?hash:('-> int) -> ?size:int -> unit -> ('a, 'b) OLinq_map.Build.t
  val of_cmp : ?cmp:('-> '-> int) -> unit -> ('a, 'b) OLinq_map.Build.t
  type 'a src =
      Cmp of 'OLinq_map.ord
    | Hash of 'OLinq_map.equal * 'OLinq_map.hash * int
    | Default
  val of_src : 'OLinq_map.Build.src -> ('a, 'b) OLinq_map.Build.t
  val src_of_args :
    ?cmp:'OLinq_map.ord ->
    ?eq:'OLinq_map.equal ->
    ?hash:'OLinq_map.hash -> unit -> 'OLinq_map.Build.src
  val make :
    ?cmp:'OLinq_map.ord ->
    ?eq:'OLinq_map.equal ->
    ?hash:'OLinq_map.hash -> unit -> ('a, 'b) OLinq_map.Build.t
end