[Haskell-cafe] Syntax of 'do'

Maurí­cio briqueabraque at yahoo.com
Fri Aug 29 09:41:41 EDT 2008


http://haskell.org/haskellwiki/Keywords says that:

[do is a] syntactic sugar for use with monadic
expressions. For example:

  do { x ; result <- y ; foo result }

is shorthand for:

  x >> y >>= \result -> foo result

I did some tests hiding Prelude.>> and Prelude.>>=
and applying >> and >>= to non-monadic types, and
saw that 'do' would not apply to them. So, I would
like to add the following to that text:

as long as proper types apply:

x :: Prelude.Monad a
y :: Prelude.Monad b
foo :: b -> Prelude.Monad c

Is that correct (Haskell and English)?


More information about the Haskell-Cafe mailing list