prim alternatives and similar packages
Based on the "Prelude" category.
Alternatively, view prim 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 -
papa-prelude-semigroupoids
Prelude with only useful functions -
papa-implement
All implemented modules and others with multiple dependencies -
papa-bifunctors-export
export useful functions from bifunctors -
papa-bifunctors-implement
Useful bifunctors functions reimplemented -
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 prim or a related project?
README
PRIM
This library reorganizes ghc-prim
in a sane but conservative way
, without adding any fancy tricks like overloading or extra functions.
It's meant as a foundation for low-level programming in haskell, as well as (eventually),
a comprehensive home for documentation on ghc magic.
Module Structure
Modules live at the toplevel and do not consider the global package ecosystem, for modularity. It is intended to use cabal mixins or PackageImports to appropriately avoid collisions downstream. Modules are granular, intending to represent a particular usable component such as a single datatype or class. Modules for internal types are nested under the module they group closest with, while modules for common types like Refs and Arrays are anti-nested with the root exposing their types.
Export Structure
Types and constructors with the same name as the module, as well as all operators are meant to be imported unqualified. All other identifiers are meant to be imported qualified. The common pattern is:
import Compact (Compact)
import Compact qualified