intro alternatives and similar packages
Based on the "Prelude" category.
Alternatively, view intro alternatives based on common mentions on social networks and blogs.
-
relude
🌀 Safe, performant, user-friendly and lightweight Haskell standard library -
base-prelude
The most complete prelude formed only from the "base" package -
mtl-prelude
Reexports of most definitions from "mtl" and "transformers" -
papa-prelude-semigroupoids
Prelude with only useful functions -
papa-implement
All implemented modules and others with multiple dependencies -
papa-bifunctors-implement
Useful bifunctors functions reimplemented -
papa-bifunctors-export
export useful functions from bifunctors -
papa-semigroupoids-export
export useful functions from semigroupoids -
papa-semigroupoids-implement
Useful semigroupoids functions reimplemented -
microbase
A minimal base reexporting hardwired stuff to get around GHC bugs -
preludeplus
Non-partial Prelude with List functions generalized to MonadPlus. -
lifted-protolude
A sensible set of defaults for writing lifted custom Preludes.
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of intro or a related project?
README
Intro: Safe and minimal Haskell Prelude
Intro is a modern Prelude which provides safe alternatives for most of the partial functions and follows other best practices, e.g., Text is preferred over String. For String overloading the extension 'OverloadedStrings' should be used. Container types and Monad transformers are provided.
Most important - this Prelude tries to keep things simple and minimal. This means it just reexports from base and commonly used libraries and adds only very few additional functions.
List of design decisions:
- Keep everything at one place
- Conservative extension over the base Prelude
- Rely only on common additional libraries
- Avoid writing custom functions
- Export everything explicitly to provide a stable interface and good documentation
- Export only total functions or provide safe alternatives (Very few exceptions like div etc.)
- Prefer Text over String, provide ConvertString and EncodeString
- Provide monad transformers
- Provide container types
- Prefer generic functions
- Debugging functions, like 'Intro.Trustworthy.trace' and 'undefined' are available but produce compile time warnings
- Replace error with panic
- Compatibility with unqualified import of Control.Lens and Optics