Module type Core_extended.Set_lang_intf.S

module Raw : sig ... end
module Set : Core.Set.S
type 'base t = ('baseSet.tRaw.t
include sig ... end
val t_of_sexp : (Sexplib.Sexp.t ‑> 'base) ‑> Sexplib.Sexp.t ‑> 'base t
val sexp_of_t : ('base ‑> Sexplib.Sexp.t) ‑> 'base t ‑> Sexplib.Sexp.t
val compare : ('base ‑> 'base ‑> int) ‑> 'base t ‑> 'base t ‑> int
include S_lang with type base t := base t with type set := Set.t
type set
type 'base t
val base : 'base ‑> 'base t
val set : set ‑> _ t
val inter2 : 'b t ‑> 'b t ‑> 'b t
val union2 : 'b t ‑> 'b t ‑> 'b t
val diff : 'b t ‑> 'b t ‑> 'b t
val union : 'b t list ‑> 'b t
val inter : ('b t * 'b t list) ‑> 'b t
val inter_list : 'b t list ‑> 'b t Core.Or_error.t
val inter_list_exn : 'b t list ‑> 'b t
val values : 'base t ‑> 'base list
val constant_value : _ t ‑> set option
include S_eval with type base t := base t with type set := set with type result := a value
type 'base t
type set
type 'a result
val subst : 'b1 t ‑> f:('b1 ‑> 'b2 t result) ‑> 'b2 t result
val map : 'b1 t ‑> f:('b1 ‑> 'b2 result) ‑> 'b2 t result
val specialize : 'b t ‑> f:('b ‑> set option result) ‑> 'b t result
val eval : 'b t ‑> f:('b ‑> set result) ‑> set result
module Make_monadic_eval : functor (M : Core.Monad.S) -> S_eval with type base t := base t with type set := set with type result := a M.t