functor (M : Core.Std.Monad.S) ->
sig
val subst : 'b1 t -> f:('b1 -> 'b2 t M.t) -> 'b2 t M.t
val map : 'b1 t -> f:('b1 -> 'b2 M.t) -> 'b2 t M.t
val specialize : 'b t -> f:('b -> set option M.t) -> 'b t M.t
val eval : 'b t -> f:('b -> set M.t) -> set M.t
end