[Haskell-cafe] Comments from OCaml Hacker Brian Hurt

Wouter Swierstra wss at Cs.Nott.AC.UK
Thu Jan 15 11:44:45 EST 2009

At the risk of painting my own bikeshed...

> If you're learning Haskell, which communicates the idea more clearly:
> * Appendable
> or
> * Monoid

Would you call function composition (on endofunctions) "appending"?  
The join of a monad? A semi-colon (as in sequencing two imperative  
statements)? How do you append two numbers? Addition, multiplication,  
or something else entirely?

All these operations are monoidal, i.e., are associative and have both  
left and right identities. If that's exactly what they have in common,  
why invent a new name? "Appendable" may carry some intuition, but it  
is not precise and sometimes quite misleading.

> I guess the bottom line question is: who is Haskell for?  Category
> theorists, programmers, or both?  I'd love it to be for both, but I've
> got to admit that Brian has a point that it is trending to the first  
> in
> some areas.

One of my grievances about Haskell is the occasional disregard for  
existing terminology. "Stream Fusion" is about lazy lists/co-lists,  
not streams; "type families" mean something entirely different to type  
theorists. This kind of misnomer is even more confusing than a name  
that doesn't mean anything (at least, until you learn more category  


This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.

More information about the Haskell-Cafe mailing list