On Fri, Aug 29, 2008 at 6:41 AM, Maurício
<briqueabraque@yahoo.com> wrote:
Hi,
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:
It sounds like you tried to redefine (>>) and (>>=) and make 'do' use the new definitions. This is not possible, regardless of what types you give (>>) and (>>=).
If you want to define (>>) and (>>=), do so for a particular instance of Monad.
-------------
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)?
Thanks,
Maurício
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe