sig
type 'e t
type key
type 'e elt = 'e
type 'e cursor
type ('a, 'v) result
type 'k key_ = key
type 'e elt_ = 'e
type ('k, 'e) map = 'e t
type ('a, 'k, 'v) result_ = ('a, 'v) result
val empty : ('k, 'e) map
val is_empty : ('k, 'e) map -> bool
val mem : 'k key_ -> ('k, 'e) map -> (bool, 'k, 'e) result_
val add : 'k key_ -> 'e elt_ -> ('k, 'e) map -> ('k, 'e) map
val singleton : 'k key_ -> 'e elt_ -> ('k, 'e) map
val remove : 'k key_ -> ('k, 'e) map -> ('k, 'e) map
val find : 'k key_ -> ('k, 'e) map -> ('e elt_, 'k, 'e) result_
val min_key : ('k, 'e) map -> ('k key_, 'k, 'e) result_
val max_key : ('k, 'e) map -> ('k key_, 'k, 'e) result_
val min_keyval : ('k, 'e) map -> ('k key_ * 'e elt_, 'k, 'e) result_
val max_keyval : ('k, 'e) map -> ('k key_ * 'e elt_, 'k, 'e) result_
val cardinal : ('k, 'e) map -> int
val iter : ('k key_ -> 'e elt_ -> unit) -> ('k, 'e) map -> unit
val fold :
('acc -> 'k key_ -> 'e elt_ -> 'acc) -> 'acc -> ('k, 'e) map -> 'acc
val map : ('e elt_ -> 'f elt_) -> ('k, 'e) map -> ('k, 'f) map
val mapi : ('k key_ -> 'e elt_ -> 'f elt_) -> ('k, 'e) map -> ('k, 'f) map
val union :
('k key_ -> 'e elt_ -> 'e elt_ -> 'e elt_) ->
('k, 'e) map -> ('k, 'e) map -> ('k, 'e) map
val inter :
('k key_ -> 'e elt_ -> 'e elt_ -> 'e elt_) ->
('k, 'e) map -> ('k, 'e) map -> ('k, 'e) map
val diff :
('k key_ -> 'e elt_ -> 'e elt_ -> bool) ->
('k, 'e) map -> ('k, 'e) map -> ('k, 'e) map
val well_formed : ('k, 'e) map -> bool
val of_result : ('a, 'k, 'e) result_ -> 'a
type ('k, 'e) cursor_ = 'e cursor
val to_cursor : ('k, 'e) map -> ('k, 'e) cursor_
val from_cursor : ('k, 'e) cursor_ -> ('k, 'e) map
val at_top : ('k, 'e) cursor_ -> bool
val at_left : ('k, 'e) cursor_ -> bool
val at_right : ('k, 'e) cursor_ -> bool
val move_up : ('k, 'e) cursor_ -> ('k, 'e) cursor_
val move_down_left : ('k, 'e) cursor_ -> ('k, 'e) cursor_
val move_down_right : ('k, 'e) cursor_ -> ('k, 'e) cursor_
val went_left : ('k, 'e) cursor_ -> bool
val went_right : ('k, 'e) cursor_ -> bool
val has_value : ('k, 'e) cursor_ -> bool
val get_value : ('k, 'e) cursor_ -> 'k key_ * 'e elt_
val compare_keys :
'e Reins.Maps.MonoKeyMapSig.t -> 'e Reins.Maps.MonoKeyMapSig.t -> int
val compare :
('e -> 'e -> int) ->
'e Reins.Maps.MonoKeyMapSig.t -> 'e Reins.Maps.MonoKeyMapSig.t -> int
val to_string : ('e -> string) -> 'e Reins.Maps.MonoKeyMapSig.t -> string
val gen2 :
(?size:int -> Random.State.t -> Reins.Maps.MonoKeyMapSig.key) ->
(?size:int -> Random.State.t -> 'a) ->
?size:int -> Random.State.t -> 'a Reins.Maps.MonoKeyMapSig.t
end