# Effects


`error` exposes one op with `strict`/`collecting`/`result`
handler strategies. `state` declares `EffState : Π(S:U). U` with
`get`/`put`/`modify` and ships a kernel-term `handle_State`
head-normalised at run-entry by the trampoline bridge.
`typecheck` declares `EffTypeCheck : Π(R:U). U` with one `report`
op and six policy handlers: five fold a stream of membership
decisions, and `strict` throws on the first failure.

## Sub-namespaces

- [`error`](/nix-effects/core-api/experimental/desc-interp/effects/error)
- [`error-shortcut-laws`](/nix-effects/core-api/experimental/desc-interp/effects/error-shortcut-laws)
- [`error-uniform-shortcut-laws`](/nix-effects/core-api/experimental/desc-interp/effects/error-uniform-shortcut-laws)
- [`state`](/nix-effects/core-api/experimental/desc-interp/effects/state)
- [`state-shortcut-laws`](/nix-effects/core-api/experimental/desc-interp/effects/state-shortcut-laws)
- [`typecheck`](/nix-effects/core-api/experimental/desc-interp/effects/typecheck)
- [`typecheck-shortcut-laws`](/nix-effects/core-api/experimental/desc-interp/effects/typecheck-shortcut-laws)

## Source

- [`src/experimental/desc-interp/effects/error-shortcut-laws.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/error-shortcut-laws.nix)
- [`src/experimental/desc-interp/effects/error-uniform-shortcut-laws.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/error-uniform-shortcut-laws.nix)
- [`src/experimental/desc-interp/effects/error.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/error.nix)
- [`src/experimental/desc-interp/effects/state-shortcut-laws.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/state-shortcut-laws.nix)
- [`src/experimental/desc-interp/effects/state.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/state.nix)
- [`src/experimental/desc-interp/effects/typecheck-shortcut-laws.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/typecheck-shortcut-laws.nix)
- [`src/experimental/desc-interp/effects/typecheck.nix`](https://github.com/kleisli-io/nix-effects/blob/main/src/experimental/desc-interp/effects/typecheck.nix)

