On Dec 14, 2011, at 4:40 PM, Ivan Lazar Miljenovic wrote:

> [...] Apart from some
> basic combinators in Control.Monad or the definitions of monad
> transformers, how much of what you write in do-blocks is applicable to
> some generic Monad instance as opposed to a specific Monad?

Well, if my *only* constraint on a type is that it be an instance of Monad, 
then *all* of the code written in do-blocks will be applicable to a generic 
Monad instance.  That's the whole point.  :-)

Furthermore, you make it sound like this generic case scenario is incredibly 
rare, but in fact it is very common:  it occurs whenever someone writes a 
monadic transformer, which happens all the time.  Imagine what writing monadic 
transformers would be like if you couldn't always trust that, say, (>>=) was a 
well-defined operation?

Cheers,
Greg
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to