monad parsing article....

Keith Wansbrough Keith.Wansbrough@cl.cam.ac.uk
Wed, 23 Jan 2002 13:09:13 +0000


David Feuer asks:

> implementation language --- are explained as they are used.  Any other
> lazy functional language that supports (multi-parameter) constructor
> classes and the use of monad comprehension notation would do equally well.
> ...."
> 
> I am curious: was there any other language at the time supporting all of
> these features, or was this a joke?

I'm fairly sure there wasn't; but of course they had hopes that Haskell 
soon would.  As it turns out, Haskell still doesn't have MPTC in the 
standard, but it did for a while have monadic comprehensions, and most 
Haskell implementations now support MPTC.

> Also, why were monad comprehensions
> removed from Haskell?  Was it for efficiency?

No, it was because they led to extremely confusing error messages.  
This was a particular concern because list comprehensions tend to be 
used a lot by beginners, in assignments designed to demonstrate the 
power and compactness of the language.  If simple typos lead to error 
messages about functors and monads and other arcane and unknown 
concepts, these beginners are liable to be put off; if instead the 
error messages talk about lists then they will be much more useful.

--KW 8-)