Module type Core_extended.Set_lang_intf.S_lang

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