
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-)