`functor (M : Core.Std.Monad.S) ->
sig
val subst :
('b, 'e, 'c) Set_lang.t ->
f:('b -> ('b, 'e, 'c) Set_lang.t M.t) -> ('b, 'e, 'c) Set_lang.t M.t
val map :
('b, 'e, 'c) Set_lang.t ->
f:('b -> 'b M.t) -> ('b, 'e, 'c) Set_lang.t M.t
val specialize :
('b, 'e, 'c) Set_lang.t ->
f:('b -> ('e, 'c) Core.Std.Set.t option M.t) ->
('b, 'e, 'c) Set_lang.t M.t
val eval :
('b, 'e, 'c) Set_lang.t ->
f:('b -> ('e, 'c) Core.Std.Set.t M.t) -> ('e, 'c) Core.Std.Set.t M.t
end`