definition module StdMonad

class return        c :: a -> c a
class (>>=) infix 0	c :: (c a) (a -> c b) -> c b
class fail          c :: c a

class Monad	        c | return, >>= c
class MonadFail	    c | Monad, fail c