Improve base library synopsis and description
After collecting feedback from newcomers, and experienced users, I would like to bring some changes to the synopsis and description of the base
library.
Several problems have been noted:
- In terms of terminology, "library" is used in an antiquated way. If "library" meant at the time of the Report what we call module today, it is now a term that we use to talk about a type of component in a package (other types of components being executable, test suite, benchmark suite, foreign library).
- As such, "Basic libraries" manages in two words to be redundant (base is basic, fantastic, what else is new?) and misleading (there is only one library in this package, it is the eponymous
base
). - "This package contains the Standard Haskell Prelude and its support libraries": Ah, a new term is introduced: "package". It is unclear how it relates to libraries. Since it's a container of libraries, it refers to a different level of abstraction, and thus should be removed. Package management is best explained in the cabal documentation.
- "a large collection of useful libraries ranging from data structures to parsing combinators and debugging utilities." is not true, the data structures are actually quite limited since people find themselves reaching out to
containers
andtext
quite rapidly. Debugging utilities is also misleading, since only Debug.Trace inhabits the Debug namespace. Parser combinators are often seen as peculiar here, sinceparsec
is touted as the standard parser combinator library in our ecosystem.
cf a rendering of the proposed changes: