sig
  type key
  type 'a t
  val empty : 'Lm_map_sig.LmMapBase.t
  val is_empty : 'Lm_map_sig.LmMapBase.t -> bool
  val cardinal : 'Lm_map_sig.LmMapBase.t -> int
  val add :
    'Lm_map_sig.LmMapBase.t ->
    Lm_map_sig.LmMapBase.key -> '-> 'Lm_map_sig.LmMapBase.t
  val find : 'Lm_map_sig.LmMapBase.t -> Lm_map_sig.LmMapBase.key -> 'a
  val remove :
    'Lm_map_sig.LmMapBase.t ->
    Lm_map_sig.LmMapBase.key -> 'Lm_map_sig.LmMapBase.t
  val mem : 'Lm_map_sig.LmMapBase.t -> Lm_map_sig.LmMapBase.key -> bool
  val find_key :
    'Lm_map_sig.LmMapBase.t ->
    Lm_map_sig.LmMapBase.key -> Lm_map_sig.LmMapBase.key option
  val iter :
    (Lm_map_sig.LmMapBase.key -> '-> unit) ->
    'Lm_map_sig.LmMapBase.t -> unit
  val map :
    ('-> 'b) -> 'Lm_map_sig.LmMapBase.t -> 'Lm_map_sig.LmMapBase.t
  val mapi :
    (Lm_map_sig.LmMapBase.key -> '-> 'b) ->
    'Lm_map_sig.LmMapBase.t -> 'Lm_map_sig.LmMapBase.t
  val fold :
    ('-> Lm_map_sig.LmMapBase.key -> '-> 'a) ->
    '-> 'Lm_map_sig.LmMapBase.t -> 'a
  val fold_map :
    ('-> Lm_map_sig.LmMapBase.key -> '-> 'a * 'c) ->
    '-> 'Lm_map_sig.LmMapBase.t -> 'a * 'Lm_map_sig.LmMapBase.t
  val forall2 :
    ('-> '-> bool) ->
    'Lm_map_sig.LmMapBase.t -> 'Lm_map_sig.LmMapBase.t -> bool
  val forall :
    (Lm_map_sig.LmMapBase.key -> '-> bool) ->
    'Lm_map_sig.LmMapBase.t -> bool
  val exists :
    (Lm_map_sig.LmMapBase.key -> '-> bool) ->
    'Lm_map_sig.LmMapBase.t -> bool
  val find_iter :
    (Lm_map_sig.LmMapBase.key -> '-> 'b option) ->
    'Lm_map_sig.LmMapBase.t -> 'b option
  val isect_mem :
    'Lm_map_sig.LmMapBase.t ->
    (Lm_map_sig.LmMapBase.key -> bool) -> 'Lm_map_sig.LmMapBase.t
  val choose : 'Lm_map_sig.LmMapBase.t -> Lm_map_sig.LmMapBase.key * 'a
  val filter_add :
    'Lm_map_sig.LmMapBase.t ->
    Lm_map_sig.LmMapBase.key ->
    ('a option -> 'a) -> 'Lm_map_sig.LmMapBase.t
  val filter_remove :
    'Lm_map_sig.LmMapBase.t ->
    Lm_map_sig.LmMapBase.key ->
    ('-> 'a option) -> 'Lm_map_sig.LmMapBase.t
  val replace :
    'Lm_map_sig.LmMapBase.t ->
    Lm_map_sig.LmMapBase.key -> ('-> 'a) -> 'Lm_map_sig.LmMapBase.t
  val keys : 'Lm_map_sig.LmMapBase.t -> Lm_map_sig.LmMapBase.key list
  val data : 'Lm_map_sig.LmMapBase.t -> 'a list
  val add_list :
    'Lm_map_sig.LmMapBase.t ->
    (Lm_map_sig.LmMapBase.key * 'a) list -> 'Lm_map_sig.LmMapBase.t
  val equal :
    ('-> '-> bool) ->
    'Lm_map_sig.LmMapBase.t -> 'Lm_map_sig.LmMapBase.t -> bool
end