<div dir="ltr"><div>I think this is a great idea.  I do wonder, however, if it might exacerbate a kind of meta-documentation problem that I, at least, had when I was more of a beginner: it was not clear to me that most of a type's API is implicit in its instances of many standard classes, and specialized functions for things like mapping or folding or appending may not even be present in the rest of the module.  Obviously this is something that every Haskeller needs to learn, but it was an issue for me even when the instance lists were present for me to gloss over.</div><div><br></div><div>Perhaps Haddock could, rather than establishing this as a new default, provide a "collapse all" and "expand all" set of functions at the top of the page?<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jan 2, 2019 at 8:03 PM Li-yao Xia <<a href="mailto:lysxia@gmail.com">lysxia@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Café,<br>
<br>
I would like to propose making haddock keep instance lists collapsed by <br>
default. Some discussion is in order since it would significantly affect <br>
the documentation of many packages on Hackage.<br>
<br>
Feel free to reply here or on the related Github thread: <br>
<a href="https://github.com/haskell/haddock/issues/698" rel="noreferrer" target="_blank">https://github.com/haskell/haddock/issues/698</a><br>
<br>
1. Instance lists take a lot of screen estate<br>
<br>
For a motivating example, I can point to the Prelude we all love.<br>
<br>
<a href="https://hackage.haskell.org/package/base-4.12.0.0/docs/Prelude.html" rel="noreferrer" target="_blank">https://hackage.haskell.org/package/base-4.12.0.0/docs/Prelude.html</a><br>
<br>
We are immediately welcomed by half a page of instances of Bool, which <br>
is not quite bad, but classes have the most impressive instance lists, <br>
as you may see when you reach Eq.<br>
<br>
Many packages, even commonly used ones, have the same issue. For an <br>
extreme example, see the scrollbar jump when you fold the instance list <br>
of Apply in singletons.<br>
<br>
<a href="https://hackage.haskell.org/package/singletons-2.5.1/docs/Data-Singletons.html#t:Apply" rel="noreferrer" target="_blank">https://hackage.haskell.org/package/singletons-2.5.1/docs/Data-Singletons.html#t:Apply</a><br>
<br>
2. Current workarounds<br>
<br>
They can be collapsed manually one by one, and we can jump to the middle <br>
of a module with the table of contents, but scrolling up from the bottom <br>
of an instance list is still a chore.<br>
<br>
Of course, instance lists also contain quite important information. <br>
Would it become too easy to miss if it were hidden by default? Would a <br>
more fine-grained alternative be better?<br>
<br>
Regards,<br>
Li-yao<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>