module T: sig .. end
sig
end
type 'f monad = {
'f
return : 'a. 'a -> ('a, 'f) App.T.app;
'a. 'a -> ('a, 'f) App.T.app
bind : 'a 'b. ('a, 'f) App.T.app -> ('a -> ('b, 'f) App.T.app) -> ('b, 'f) App.T.app;
'a 'b. ('a, 'f) App.T.app -> ('a -> ('b, 'f) App.T.app) -> ('b, 'f) App.T.app