@hackage classy-prelude1.5.0.3
A typeclass-based Prelude.
Installation
Dependencies (26)
- async
- base >=4.13 && <5
- basic-prelude >=0.7
- bifunctors
- bytestring
- chunked-data >=0.3 Show all…
Dependents (73)
@hackage/greenclip, @hackage/rfc, @hackage/cmt, @hackage/http-reverse-proxy, @hackage/ihaskell-charts, @hackage/shakespeare-babel, Show all…
classy-prelude
A better Prelude. Haskell's Prelude needs to maintain backwards compatibility and has many aspects that no longer represents best practice. The goals of classy-prelude are:
- remove all partial functions
- modernize data structures
- generally use Text instead of String
- encourage the use of appropriate data structures such as Vectors or HashMaps instead of always using lists and associated lists
- reduce import lists and the need for qualified imports
classy-prelude should only be used by application developers. Library authors should consider using mono-traversable, which classy-prelude builds upon.
It is worth noting that classy-prelude largely front-ran changes that the community made to the base Prelude in GHC 7.10.
mono-traversable
Most of this functionality is provided by mono-traversable. Please read the README over there. classy-prelude gets rid of the o prefix from mono-traversable functions.
Text
Lots of things use Text instead of String.
Note that show returns a String.
To get back Text, use tshow.
other functionality
- exceptions package
- system-filepath convenience functions
- whenM, unlessM
- hashNub and ordNub (efficient nub implementations).
Using classy-prelude
- use the NoImplicitPrelude extension (you can place this in your cabal file) and
import ClassyPrelude - use base-noprelude in your project and define a Prelude module that re-exports
ClassyPrelude.
Appendix
These blog posts contain some out-dated information but might be helpful
- So many preludes! (January 2013)
- ClassyPrelude: The good, the bad, and the ugly (August 2012)