Up

Module type S_lang

Signature

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.Std.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 'a 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 (M : Core.Std.Monad.S) : S_eval with type 'base t := 'base t with type set := set with type 'a result := 'a M.t