The premise of basic-prelude is that there are a lot of very commonly
desired features missing from the standard Prelude, such as commonly
used operators (<$> and >=>, for instance) and imports for common
datatypes (e.g., ByteString and Vector). At the same time, there are
lots of other components which are more debatable, such as providing
polymorphic versions of common functions.
So basic-prelude is intended to give a common foundation for a number
of alternate preludes. The package provides two modules: CorePrelude
provides the common ground for other preludes to build on top of,
while BasicPrelude exports CorePrelude together with commonly used
list functions to provide a drop-in replacement for the standard Prelude.
Users wishing to have an improved Prelude can use BasicPrelude.
Developers wishing to create a new prelude should use CorePrelude.