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