packages feed

atelier-prelude-0.1.0.0: README.md

# atelier-prelude

A custom prelude based on [relude](https://github.com/kowainik/relude), adapted for [Effectful](https://github.com/haskell-effectful/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):

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

or in a `.cabal` file:

```cabal
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`.

## Part of atelier

- [`atelier-prelude`](https://github.com/atelier-hub/tricorder/tree/main/atelier-prelude) — this package
- [`atelier-core`](https://github.com/atelier-hub/tricorder/tree/main/atelier-core) — foundational effects and utilities
- [`atelier-db`](https://github.com/atelier-hub/tricorder/tree/main/atelier-db) — relational database effect (Hasql/Rel8)
- [`atelier-testing`](https://github.com/atelier-hub/tricorder/tree/main/atelier-testing) — database-backed test utilities

## License

MIT — see [LICENSE](LICENSE).