# Module type Set_lang_intf.S_lang

    module type S_lang = sig .. end

    type set

    type 'base t

    val base : 'base -> 'base t

    val set : set -> 'a 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 : 'a t -> set option

    include Set_lang_intf.S_eval

    module Make_monadic_eval: functor (M : Core.Std.Monad.S) -> Set_lang_intf.S_eval
        with type 'base t := 'base t
        with type set := set
        with type 'a result := 'a M.t