
On Mon, Aug 8, 2011 at 1:56 AM, Henning Thielemann < schlepptop@henning-thielemann.de> wrote:
On 24.07.2011 22:20, Antoine Latter wrote:
On Sat, Jul 23, 2011 at 1:41 PM, KC
wrote: It would be easier for beginners to "grok".
I think that assumes that all beginners have a strong foundation in algebra. Although it does have the advantage that the names are as abstract as the class.
As pointed out earlier in this list, the name of the class and the methods are inconsistent. Monoid refers to a general algebraic structure, whereas mempty and mappend refer to certain instances like lists.
I don't know what the intention for the names was, but I read them as "syntactic" empty and append, as in the monoid constructs of algebra. In other words, we construct "words" by "appending" (or "concatenating") elements of a monoid. And we have an "empty" word. This usage is common enough in mathematics. After all, if we use the Monoid class interface for a type, we are explicitly using the monoid operations, and not the type's underlying interpretation for appending words in the type. Why should the generic monoid operator names reflect the underlying usage?