[Haskell-cafe] Comments from OCaml Hacker Brian Hurt
Andrew Coppin
andrewcoppin at btinternet.com
Thu Jan 15 17:32:09 EST 2009
Duncan Coutts wrote:
> By making a type an instance of Monoid instead of exporting
> emptyFoo, joinFoo functions it makes the API clearer because it shows
> that we are re-using an existing familiar concept rather than inventing
> a new one. It also means the user already knows that joinFoo must be
> associative and have unit emptyFoo without having to read the
> documentation.
>
I don't know about you, but rather than knowing that joinFoo is
associative, I'd be *far* more interested in finding out what it
actually _does_. Knowing that it's a monoid doesn't really tell me
anything useful. A monoid can be almost anything.
As an aside, the integers form two different monoids. Haskell can't
[easily] handle that. Does anybody know of a language that can?
More information about the Haskell-Cafe
mailing list