| License | MIT |
|---|---|
| Maintainer | mail@doisinkidney.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Precursor
Description
Features
- No more
String Stringis removed in favor of lazyText.- No more
Num - The
Numtypeclass is now just for types which can be converted from integer literals. SemigroupsSemigroups are now in scope by default, as well as some useful wrappers.Semirings- A
Semiringhas the operations+and*, and the membersoneandzero.Boolis aSemiring, as isInteger, etc.Numis not a superclass ofSemiring. - Sensibly strict
- Several functions, such as
foldl,sum,product, etc. are strict as default. - No unnecessary
Monads - Functions such as
sequence,>>, andreplicateMare removed in favor of the equivalentsequenceA,*>, andreplicateAonApplicatives. - Fewer partial functions
- Functions like
head,last,minimum, etc. now returnNothingwhen called on empty structures.tailandinitreturn empty lists when called on empty lists. - Data structures
MapandSet(the strict variants) are now in scope by default, with a minimal, non-colliding aliased api.- Transformers
Stateis now in scope by default.- Debugging
- Handy functions like
trace,traceShow, andnotImplementedare 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.
Documentation
module Precursor.Algebra.Enum
module Precursor.Algebra.Eq
module Precursor.Algebra.Monoid
module Precursor.Algebra.Ord
module Precursor.Algebra.Ring
module Precursor.Algebra.Semigroup
module Precursor.Algebra.Semiring
module Precursor.Coerce
module Precursor.Control.Bifunctor
module Precursor.Control.Category
module Precursor.Control.Functor
module Precursor.Control.Monad
module Precursor.Control.State
module Precursor.Data.Bool
module Precursor.Data.Either
module Precursor.Data.List
module Precursor.Data.Map
module Precursor.Data.Maybe
module Precursor.Data.Set
module Precursor.Data.Tuple
module Precursor.Debug
module Precursor.Function
module Precursor.Numeric.Integral
module Precursor.Numeric.Num
module Precursor.Structure.Foldable
module Precursor.System.IO
module Precursor.Text.Show
module Precursor.Text.Text