← All repos

polysemy

:gemini: higher-order, no-boilerplate monads

Browse cluster: Haskell tooling and libraries
559commits
46contributors
2languages

Tech stack & purpose

Polysemy is a Haskell library for writing domain-specific languages that separate business logic from implementation details, allowing code to be reused as libraries. It provides higher-order effects with minimal boilerplate, positioning itself as an improvement over existing approaches like `mtl`, `freer-simple`, and `fused-effects` by avoiding O(n²) instances problems and supporting multiple copies of the same effect without functional dependencies. The project is built in Haskell and comes with an optional companion typechecker plugin, `polysemy-plugin`, which disambiguates effect usage to improve type inference. Sandy Maguire is identified as the author.

Community & reference links

Languages

Haskell
98.9%
Nix
1.1%

Contributors (top 30 of 46)