[Haskell-cafe] On the verge of ... giving up!

ajb at spamcop.net ajb at spamcop.net
Sun Oct 14 21:49:28 EDT 2007

G'day all.

Quoting jerzy.karczmarczuk at info.unicaen.fr:

> I have heard that a few times, not recently. This is really interesting,
> WHAT do you actually miss?

Off the top of my head, from H1.4, I miss:

     - MonadZero (a lot)
     - Some of the monad/functor-overloaded functions (quite a bit)
     - Record punning (slightly)

> For me, from the ancient times, what I
> regret, but just a tiny bit, is
> that (:) is not an operator as any other, but a "syntactic construct".

I agree with that in principle; it's unfortunate that lists are
"built in" as much as they are.  But I can't say I really miss this.

> Also, monadic comprehensions, which disappeared in order to remove too
> much of ambiguity...

Five years ago, I would have agreed.  I'm over that now, and do-notation
is more useful.

> Anything else worth mentioning? What *negative* has
> been suppressed?

I mentioned the un-generalising of "map" above.  That probably needs some
justification.  I think that the best evidence of why this was a mistake
is the fact that many modules implement a namespace-overloaded "map".  
Data.Map.map springs to mind, but there are others.

People want to write "map" instead of "fmap".  We could have come up
with an alternative name for the list-version of "map" and not showed
"map" to newbies.

(Having said that, some of the un-overloading was good.  I'm happy,
for example, to reserve "concat" for lists and use "join" for monads.)

Andrew Bromage

More information about the Haskell-Cafe mailing list