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