Non-H98 crusade, contd.
peterson-john at cs.yale.edu
Mon Feb 28 13:56:09 EST 2005
> As examples of language features that should be removed or revised,
> how about these:
(n+k, monomorphism, defaulting, monad comprehensions)
All of this has been debated (endlessly!) once before. Not that it
shouldn't be debated again, but the wrapup from long ago looks like
n+k (the issue that won't die). Removing n+k would probably be fairly
pointless, given that it doesn't simplify much (except syntax) and
is in wide use. Points:
* Some people would like to see views introduced in a way that
makes current n+k a special case (views would be nice!)
* Everyone agreed that n+k really should be used for some sort of
special "Natural number" type. But we didn't want to add a new type.
Monomorphism (another issue that won't die!). Without scoped type
variables, monomorphism is essential to avoid ambiguity. If scoped
type variables appear progress could be made.
Defaulting. Again, lots of old debate on this. Nobody is
particularly happy with the current design but something is needed.
A more general mechanism would be welcomed but hasn't been
implemented as far as I know.
List comprehension / MonadPlus. This was definitely a mistake (in my
humble opinion!) but the idea was that we wanted to create a less
confusing environment for beginners. This could be changed back
with relatively little effort but the bigger issue of how to
insulate naive users from langage complexity is an important one.
Any change to the Haskell standard is going to require a lot of
effort. Haskell is what it is because so many people spent so much
time getting things right. I would love to see a Haskell 2.0 someday
- I hope that the process continues to be as rigorous as the one that
let to Haskell 98.
More information about the Libraries