precursor
Version 0.1.0.0 revision 0 uploaded by oisdk.
Package meta
- Synopsis
- Prelude replacement
- Description
Features
- No more String
- String is removed in favor of lazy Data.Text.Lazy.Text.
- No more Num
- The Num typeclass is now just for types which can be converted from integer literals.
- Semigroups
- Semigroups are now in scope by default, as well as some useful wrappers.
- Semirings
- A Semiring has the operations + and *, and the members one and zero. Bool is a Semiring, as is Integer, etc. Num is not a superclass of Semiring.
- Sensibly strict
- Several functions, such as foldl, sum, product, etc. are strict as default.
- No unnecessary Monads
- Functions such as Control.Monad.sequence, Control.Monad.>>, and Control.Monad.replicateM are removed in favor of the equivalent sequenceA, *>, and replicateA on Applicatives.
- Fewer partial functions
- Functions like head, last, minimum, etc. now return Nothing when called on empty structures. tail and init return empty lists when called on empty lists.
- Data structures
- Map and Set (the strict variants) are now in scope by default, with a minimal, non-colliding aliased api.
- Transformers
- State is now in scope by default.
- Debugging
- Handy functions like trace, traceShow, and notImplemented are in scope by default. They give warnings when used so they can't be forgotten.
- Other handy functions
- An O(n*log n) nub, foldr2, converge, bool, and others.
- Author
- Donnacha Oisín Kidney
- Bug reports
- n/a
- Category
- Prelude
- Copyright
- 2016 Donnacha Oisín Kidney
- Homepage
- https://github.com/oisdk/precursor#readme
- Maintainer
- mail@doisinkidney.com
- Package URL
- n/a
- Stability
- n/a