haskellhackagehoogle

Why are there two hackage layouts? Why do all recent ones have more readable syntax?


https://hackage.haskell.org/package/base-4.21.0.0/docs/GHC-Base.html, https://hackage.haskell.org/package/base-4.21.0.0/docs/Data-List.html are both normal as well as many other pages, however https://hackage.haskell.org/package/lazysmallcheck is not. I have seen many modules like the last and I have not been able to find the answer.


Solution

  • It's just an age thing; the most recent version of lazysmallcheck is from 2011, so the documentation pages were built with the versions of documentation tools that existed at the time. The version of base you're looking at is only a few months old, so the documentation pages were built with more recent tools.

    At some point (in 2018 it looks like?) Hackage was updated with a new default theme (see this pull request for example; it's not the one that was actually merged, but it has before and after screenshots showing the change).

    However the documentation pages for individual modules have to be built from the source code using a tool called Haddock. Haddock was updated with a new default theme at the same time as Hackage, but that only affects new documentation builds created with the new version Haddock. All the existing documentation pages for packages releases that already existed were not necessarily rebuilt (it may not even be possible, if the older Haskell code is not compatible with a newer Haddock that may have needed a newer GHC, or if the older packages required changes for their dependencies to be solvable with the current Hackage environment, etc).

    For example if you go to the docs for Data.List in base-4.12.0.0 you see the same old theme, and this is much newer than lazysmallcheck.