[Haskell-cafe] Comments from OCaml Hacker Brian Hurt

Ross Mellgren rmm-haskell at z.odi.ac
Thu Jan 15 11:56:09 EST 2009

Of course not, the wikipedians would probably have your head for  
notability guidelines or something ;-)

But seriously, I would have saved many hours of my life and probably  
many future ones if type class instances were documented and showed up  
in the haddock docs.


On Jan 15, 2009, at 11:53 AM, Lennart Augustsson wrote:

> By no means do I suggest that Wikipedia should replace Haskell library
> documentation.
> I think the libraries should be documented in a mostly stand-alone way
> (i.e., no references to old papers etc.).  In the case of Monoid, a
> few lines of text is enough to convey the meaning of it and gives an
> example.
>  -- Lennart
> On Thu, Jan 15, 2009 at 4:46 PM, Ross Mellgren <rmm- 
> haskell at z.odi.ac> wrote:
>> For what it's worth, many (most/all?) programmers I know in person  
>> don't
>> have the slightest clue about Category Theory and they may have  
>> known about
>> abstract algebra once upon a time but certainly don't remember any  
>> of it
>> now. They usually understand the concepts perfectly well enough but  
>> by "lay
>> terms" or by no particular name at all.
>> Personally, I don't mind it too much if the generic typeclasses are  
>> named
>> using extremely accurate terms like Monoid, but saying that someone  
>> should
>> then look up the abstract math concept and try to map this to  
>> something very
>> concrete and simple such as a string seems like wasted effort.
>> Usually when encountering something like "Monoid" (if I didn't  
>> already know
>> it), I'd look it up in the library docs. The problem I've had with  
>> this
>> tactic is twofold:
>> First, the docs for the typeclass usually don't give any practical  
>> examples,
>> so sometimes it's hard to be sure that the "append" in "mappend"  
>> means what
>> you think it means.
>> Second is that there appears to be no way to document an  
>> _instance_. It
>> would be really handy if there were even a single line under  
>> "Instances >
>> Monoid ([] a)" that explained how the type class was implemented  
>> for the
>> list type. As it is, if you know what a Monoid is already, it's  
>> easy to
>> figure out how it would be implemented. If you don't, you're either  
>> stuck
>> reading a bunch of pages on the generic math term monoid and then  
>> finally
>> realizing that it means "appendable" (and other similar things), or
>> grovelling through the library source code seeing how the instance is
>> implemented.
>> My 2 cents,
>> -Ross
>> On Jan 15, 2009, at 11:36 AM, Lennart Augustsson wrote:
>>> Most people don't understand pure functional programming either.   
>>> Does
>>> that mean we should introduce unrestricted side effects in Haskell?
>>> -- Lennart
>>> On Thu, Jan 15, 2009 at 4:22 PM, Thomas DuBuisson
>>> <thomas.dubuisson at gmail.com> wrote:
>>>> On Thu, Jan 15, 2009 at 4:12 PM, Sittampalam, Ganesh
>>>> <ganesh.sittampalam at credit-suisse.com> wrote:
>>>>> Lennart Augustsson wrote:
>>>>>> I have replied on his blog, but I'll repeat the gist of it here.
>>>>>> Why is there a fear of using existing terminology that is exact?
>>>>>> Why do people want to invent new words when there are already
>>>>>> existing ones with the exact meaning that you want? If I see  
>>>>>> Monoid I
>>>>>> know what it is, if I didn't know I could just look on Wikipedia.
>>>>>> If I see Appendable I can guess what it might be, but exactly  
>>>>>> what
>>>>>> does it mean?
>>>>> I would suggest that having to look things up slows people down
>>>>> and might distract them from learning other, perhaps more useful,
>>>>> things about the language.
>>>> Exactly.  For example, the entry for monoid on Wikipedia starts:
>>>> "In abstract algebra, a branch of mathematics, a monoid is an
>>>> algebraic structure with a single, associative binary operation  
>>>> and an
>>>> identity element."
>>>> I've had some set theory, but most programmers I know have not.
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list