On 2010-07-05 20:17, Pierre-Evariste Dagand wrote: > I don't know if there is something similar to a "do-notation", tho. No, you have to use _>>=_ manually: open import Category.Monad import Data.Maybe as Maybe open RawMonad Maybe.monad m >>= λ x → m′ >>= λ y → … -- /NAD