sig
  type t
  exception Unchanged
  val pretty : Format.formatter -> State_set.t -> unit
  val add : Relations_type.Model.t -> State_set.t -> State_set.t
  val fold : (Relations_type.Model.t -> '-> 'a) -> State_set.t -> '-> 'a
  val iter : (Relations_type.Model.t -> unit) -> State_set.t -> unit
  val merge_into : State_set.t -> State_set.t -> State_set.t
  val join : State_set.t -> Relations_type.Model.t
  val join_dropping_relations : State_set.t -> Relations_type.Model.t
  val exists : (Relations_type.Model.t -> bool) -> State_set.t -> bool
  val filter : (Relations_type.Model.t -> bool) -> State_set.t -> State_set.t
  val is_empty : State_set.t -> bool
  val singleton : Relations_type.Model.t -> State_set.t
  val cardinal : State_set.t -> int
  val empty : State_set.t
  val length : State_set.t -> int
end