https://github.com/kerscher/preliminaries
An alternative to the Haskell Prelude with many commonly-used imports automatically available.
https://github.com/kerscher/preliminaries
hackage haskell prelude
Last synced: 8 months ago
JSON representation
An alternative to the Haskell Prelude with many commonly-used imports automatically available.
- Host: GitHub
- URL: https://github.com/kerscher/preliminaries
- Owner: kerscher
- License: bsd-3-clause
- Archived: true
- Created: 2016-04-24T22:40:30.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-02-28T12:47:27.000Z (over 9 years ago)
- Last Synced: 2025-10-21T13:49:15.548Z (8 months ago)
- Topics: hackage, haskell, prelude
- Language: Haskell
- Homepage:
- Size: 40 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Preliminaries
=============
[](https://travis-ci.org/kerscher/preliminaries)
[](https://hackage.haskell.org/package/preliminaries)

The Haskell Report specifies the [Prelude](https://www.haskell.org/onlinereport/standard-prelude.html) with a minimal amount of definitions that are always available in scope for application writers. Due to its simplicity and frugality, multiple alternatives and support libraries were devised to improve upon it, including:
* [`classy-prelude`](https://github.com/snoyberg/mono-traversable/tree/master/classy-prelude)
* [`base-prelude`](https://github.com/nikita-volkov/base-prelude)
* [`basic-prelude`](https://github.com/snoyberg/basic-prelude)
* [`prelude-extras`](https://github.com/ekmett/prelude-extras)
* [`protolude`](https://github.com/sdiehl/protolude)
`preliminaries` is one of such alternatives and builds upon [`classy-prelude-conduit`](https://github.com/snoyberg/mono-traversable/tree/master/classy-prelude-conduit), with the following functionality out-of-the-box:
* Data manipulation and structures — i.e. [`microlens`](https://github.com/aelve/microlens) + [`mono-traversable`](https://github.com/snoyberg/mono-traversable)
* Streaming
* Concurrency
* Parallelism
* Read-only, write-only and read-write environments — i.e. [`mtl`](https://github.com/ekmett/mtl)
Contrary to most other alternatives, there is no attempt at being minimal.
Nevertheless, it's shipped with `microlens` instead of the full-blown `lens`.
Usage
-----
To use it, put the following in your `.cabal` file, ignoring the “…” for omited parts:
```
executable your-executable
language: Haskell2010
default-extensions: NoImplicitPrelude
build-depends: preliminaries >= 0.1.6 < 1
…
```
And on each file, add `import Preliminaries`.
You might also want to look at this project’s Cabal file to check on useful GHC extensions to enable alongside this change.
Contributing
------------
In case something does not build or you find other unpleasant aspects of the library, please send a pull request or contact the maintainer.
Licence
-------
This package uses a 3-clause BSD-like licence. You can check it [here](LICENCE).