Non-H98 crusade, contd.

John Peterson 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
this:

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.

   John


More information about the Libraries mailing list