sig
  type state
  type t
  val empty : Partitioning.StateSet.t
  val is_empty : Partitioning.StateSet.t -> bool
  val singleton : Partitioning.StateSet.state -> Partitioning.StateSet.t
  val singleton' :
    Partitioning.StateSet.state Eval.or_bottom -> Partitioning.StateSet.t
  val uncheck_add :
    Partitioning.StateSet.state ->
    Partitioning.StateSet.t -> Partitioning.StateSet.t
  val add :
    Partitioning.StateSet.state ->
    Partitioning.StateSet.t -> Partitioning.StateSet.t
  val add' :
    Partitioning.StateSet.state Eval.or_bottom ->
    Partitioning.StateSet.t -> Partitioning.StateSet.t
  val length : Partitioning.StateSet.t -> int
  val merge :
    into:Partitioning.StateSet.t ->
    Partitioning.StateSet.t -> Partitioning.StateSet.t * bool
  val join :
    ?into:Partitioning.StateSet.state Eval.or_bottom ->
    Partitioning.StateSet.t -> Partitioning.StateSet.state Eval.or_bottom
  val fold :
    (Partitioning.StateSet.state -> '-> 'a) ->
    Partitioning.StateSet.t -> '-> 'a
  val iter :
    (Partitioning.StateSet.state -> unit) -> Partitioning.StateSet.t -> unit
  val map :
    (Partitioning.StateSet.state -> Partitioning.StateSet.state) ->
    Partitioning.StateSet.t -> Partitioning.StateSet.t
  val reorder : Partitioning.StateSet.t -> Partitioning.StateSet.t
  val of_list : Partitioning.StateSet.state list -> Partitioning.StateSet.t
  val to_list : Partitioning.StateSet.t -> Partitioning.StateSet.state list
  val pretty : Format.formatter -> Partitioning.StateSet.t -> unit
end