unify モナド and Monad into Monad of Haskell
complete explanation before (>>=) in details