A Haskell developer reflects on rewriting an old production codebase and argues that effect systems provide little practical benefit. They found that manual dependency passing, ST monad for mutation, and global IO suffice for their use case, while effect tracking added overhead without improving safety or clarity.
Background
Effect systems in Haskell, such as those implemented by libraries like freer-effects, mtl, and polysemy, aim to track and manage side effects in a structured way. This article contributes to an ongoing community debate about whether the added complexity is justified.
- Source
- Lobsters
- Published
- Oct 6, 2026 at 02:03 AM
- Score
- 5.0 / 10