Module type Reins.Maps.Map_


module type Map_ = sig .. end

type 'a key_ 
type 'a elt_ 
type ('a, 'b) map 
type ('a, 'b, 'c) result_ 
val empty : ('a, 'b) map
val is_empty : ('a, 'b) map -> bool
val mem : 'a key_ ->
('a, 'b) map -> (bool, 'a, 'b) result_
val add : 'a key_ ->
'b elt_ ->
('a, 'b) map -> ('a, 'b) map
val singleton : 'a key_ ->
'b elt_ -> ('a, 'b) map
val remove : 'a key_ ->
('a, 'b) map -> ('a, 'b) map
val find : 'a key_ ->
('a, 'b) map ->
('b elt_, 'a, 'b) result_
val min_key : ('a, 'b) map ->
('a key_, 'a, 'b) result_
val max_key : ('a, 'b) map ->
('a key_, 'a, 'b) result_
val min_keyval : ('a, 'b) map ->
('a key_ * 'b elt_, 'a, 'b)
result_
val max_keyval : ('a, 'b) map ->
('a key_ * 'b elt_, 'a, 'b)
result_
val cardinal : ('a, 'b) map -> int
val iter : ('a key_ -> 'b elt_ -> unit) ->
('a, 'b) map -> unit
val fold : ('a -> 'b key_ -> 'c elt_ -> 'a) ->
'a -> ('b, 'c) map -> 'a
val map : ('a elt_ -> 'b elt_) ->
('c, 'a) map -> ('c, 'b) map
val mapi : ('a key_ ->
'b elt_ -> 'c elt_) ->
('a, 'b) map -> ('a, 'c) map
val union : ('a key_ ->
'b elt_ ->
'b elt_ -> 'b elt_) ->
('a, 'b) map ->
('a, 'b) map -> ('a, 'b) map
val inter : ('a key_ ->
'b elt_ ->
'b elt_ -> 'b elt_) ->
('a, 'b) map ->
('a, 'b) map -> ('a, 'b) map
val diff : ('a key_ ->
'b elt_ -> 'b elt_ -> bool) ->
('a, 'b) map ->
('a, 'b) map -> ('a, 'b) map
val well_formed : ('a, 'b) map -> bool
val of_result : ('a, 'b, 'c) result_ -> 'a
type ('a, 'b) cursor_ 
val to_cursor : ('a, 'b) map -> ('a, 'b) cursor_
val from_cursor : ('a, 'b) cursor_ -> ('a, 'b) map
val at_top : ('a, 'b) cursor_ -> bool
val at_left : ('a, 'b) cursor_ -> bool
val at_right : ('a, 'b) cursor_ -> bool
val move_up : ('a, 'b) cursor_ -> ('a, 'b) cursor_
val move_down_left : ('a, 'b) cursor_ -> ('a, 'b) cursor_
val move_down_right : ('a, 'b) cursor_ -> ('a, 'b) cursor_
val went_left : ('a, 'b) cursor_ -> bool
val went_right : ('a, 'b) cursor_ -> bool
val has_value : ('a, 'b) cursor_ -> bool
val get_value : ('a, 'b) cursor_ ->
'a key_ * 'b elt_