MyNixOS website logo
Description

A larger alternative to the Prelude.

A GHC-only alternative to the Prelude with a large amount of imports available by default.

Preliminaries

Build Status Hackage BSD3 license

The Haskell Report specifies the Prelude 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:

preliminaries is one of such alternatives and builds upon classy-prelude-conduit, with the following functionality out-of-the-box:

  • Data manipulation and structures — i.e. microlens + mono-traversable
  • Streaming
  • Concurrency
  • Parallelism
  • Read-only, write-only and read-write environments — i.e. 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.

Metadata

Version

0.1.6.0

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows