This library aims to be an intersection of the current prelude ands "how it should be in the future". Unlike many other prelude alternatives, this package does not:
- Introduce any new abstraction
- Provide new functions
- Reexport a bunch of other libraries
Instead it's a subset of Prelude. Any Haskell source based on HumblePrelude
should also be buildable with Prelude
.
For those who want more convenience, HumblePrelude.Extras
reexports things that are frequently imported only for one or two symbols (e.g. Generic for deriving). But nothing else.
One of the well-known problems of Prelude alternatives is the tempo loss of importing the module itself. humble-prelude offers a GHC plugin that imports any module specified in the flag. Add the following lines into your cabal file:
ghc-options: -fplugin=HumblePrelude.Extras
default-extensions: NoImplicitPrelude
- Transmit byte sequence efficiently into a handle or a socket, or a new ByteString: mason
- Print something in a human-readable format: prettyprinter
- Concurrency, exceptions, process handling and file operations: unliftio
- Safely obtain minimum/maximum values: lens:Control.Lens.Fold
- Parsing: attoparsec
- Manipulating non-empty structures: semigroupoids
- Generic filters: witherable