monad parsing article....
John Hughes
rjmh@cs.chalmers.se
Wed, 23 Jan 2002 14:29:21 +0100 (MET)
Also, why were monad comprehensions
removed from Haskell? Was it for efficiency?
No, it was to help beginners. When list comprehensions, and other list
operators like ++ and filter were overloaded, then errors involving the class
system became much more common, and in particular cropped up for simple list
processing functions. These are exactly the kinds of functions that beginning
Haskell programmers write, and error messages involving class Monad are
unlikely to help them! We decided consciously to keep the types of list
functions simple, so that learners aren't forced to face the complexity of the
class system from the word go.
Overloading comprehensions is nice for experts, but even experts were
beginners once! It's important that learning Haskell is not too difficult,
otherwise there will eventually be no experts. Hence the decision.
John Hughes