sig
  type 'a elt_
  type 'a set
  type ('a, 'b) result_
  val empty : 'Reins.Sets.Set_.set
  val is_empty : 'Reins.Sets.Set_.set -> bool
  val mem :
    'Reins.Sets.Set_.elt_ ->
    'Reins.Sets.Set_.set -> (bool, 'a) Reins.Sets.Set_.result_
  val add :
    'Reins.Sets.Set_.elt_ ->
    'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set
  val singleton : 'Reins.Sets.Set_.elt_ -> 'Reins.Sets.Set_.set
  val remove :
    'Reins.Sets.Set_.elt_ ->
    'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set
  val min_elt :
    'Reins.Sets.Set_.set ->
    ('Reins.Sets.Set_.elt_, 'a) Reins.Sets.Set_.result_
  val max_elt :
    'Reins.Sets.Set_.set ->
    ('Reins.Sets.Set_.elt_, 'a) Reins.Sets.Set_.result_
  val choose :
    'Reins.Sets.Set_.set ->
    ('Reins.Sets.Set_.elt_, 'a) Reins.Sets.Set_.result_
  val cardinal : 'Reins.Sets.Set_.set -> int
  val compare : 'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set -> int
  val equal : 'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set -> bool
  val iter :
    ('Reins.Sets.Set_.elt_ -> unit) -> 'Reins.Sets.Set_.set -> unit
  val fold :
    ('-> 'Reins.Sets.Set_.elt_ -> 'a) ->
    '-> 'Reins.Sets.Set_.set -> 'a
  val union :
    'Reins.Sets.Set_.set ->
    'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set
  val inter :
    'Reins.Sets.Set_.set ->
    'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set
  val diff :
    'Reins.Sets.Set_.set ->
    'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.set
  val gen1 :
    (?size:int -> Random.State.t -> 'Reins.Sets.Set_.elt_) ->
    ?size:int -> Random.State.t -> 'Reins.Sets.Set_.set
  val well_formed : 'Reins.Sets.Set_.set -> bool
  val of_result : ('a, 'b) Reins.Sets.Set_.result_ -> 'a
  type 'a cursor_
  val to_cursor : 'Reins.Sets.Set_.set -> 'Reins.Sets.Set_.cursor_
  val from_cursor : 'Reins.Sets.Set_.cursor_ -> 'Reins.Sets.Set_.set
  val at_top : 'Reins.Sets.Set_.cursor_ -> bool
  val at_left : 'Reins.Sets.Set_.cursor_ -> bool
  val at_right : 'Reins.Sets.Set_.cursor_ -> bool
  val move_up : 'Reins.Sets.Set_.cursor_ -> 'Reins.Sets.Set_.cursor_
  val move_down_left :
    'Reins.Sets.Set_.cursor_ -> 'Reins.Sets.Set_.cursor_
  val move_down_right :
    'Reins.Sets.Set_.cursor_ -> 'Reins.Sets.Set_.cursor_
  val went_left : 'Reins.Sets.Set_.cursor_ -> bool
  val went_right : 'Reins.Sets.Set_.cursor_ -> bool
  val has_value : 'Reins.Sets.Set_.cursor_ -> bool
  val get_value : 'Reins.Sets.Set_.cursor_ -> 'Reins.Sets.Set_.elt_
end