MIT licensed by Victor Nascimento Bakke
Maintained by [email protected]
This version can be pinned in stack with:atelier-prelude-0.3.0.0@sha256:1cfcaf17c8d784291dc1e2498370cebcac702cdf11657476c179d95dccbf1555,1903

Module documentation for 0.3.0.0

Used by 3 packages in nightly-2026-09-15(full list with versions):

atelier-prelude

A custom prelude based on relude, adapted for Effectful conventions. Part of the atelier toolkit.

Usage

atelier-prelude exposes a module named Prelude. To make it the implicit prelude, hide base‘s Prelude with a mixin — GHC’s automatic import Prelude then resolves to this one, with no NoImplicitPrelude and no per-module imports.

In package.yaml (hpack):

dependencies:
  - name: base
    mixin:
      - hiding (Prelude)
  - atelier-prelude

or in a .cabal file:

build-depends: base, atelier-prelude
mixins:        base hiding (Prelude)

Add -Wno-implicit-prelude to your ghc-options to silence the implicit-prelude warning.

What’s different from relude

Lifted, IO-based operations from relude are intentionally not re-exported, so that effects are threaded explicitly through Effectful rather than performed in IO:

  • Relude.Lifted.* (system, environment, handle, terminal, file operations)
  • Relude.File
  • Relude.Print (console output)

Use the corresponding atelier-core effects instead — e.g. Atelier.Effects.Env, Atelier.Effects.File, Atelier.Effects.Console.

License

MIT — see LICENSE.

Changes

Changelog

All notable changes to atelier-prelude will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to the PVP.

[Unreleased]

[0.3.0.0] - 2026-09-10

Changed

  • Require effectful >=2.7 && <2.8.
  • Require effectful-core >=2.7 && <2.8.
  • Require effectful-plugin >=2.2 && <2.3.

[0.2.0.0] - 2026-08-13

Changed

  • Relax base constraint to support GHC 9.6 up to GHC 9.12.

[0.1.0.0] - 2026-06-04

Added

  • Initial release: a relude-based custom prelude adapted for Effectful conventions, extracted from the atelier toolkit.
  • Lifted system, environment, handle, terminal and file operations (Relude.Lifted.* and Relude.File) and console output (Relude.Print) are intentionally not re-exported; the corresponding atelier-core effects (e.g. Atelier.Effects.Env, Atelier.Effects.File, Atelier.Effects.Console) should be used instead.