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