# You don't need an effect system

**URL:** <https://discourse.haskell.org/t/you-dont-need-an-effect-system/14792>\
**Category:** Links\
**Created:** [October 3, 2026, 6:26pm UTC](https://discourse.haskell.org/t/you-dont-need-an-effect-system/14792 "2026-10-03T18:26:26Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![jaror](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jaror/32/3271_2.png) [@jaror](https://discourse.haskell.org/u/jaror)\
**Post date:** [October 3, 2026, 9:42pm UTC](https://discourse.haskell.org/t/you-dont-need-an-effect-system/14792/5 "2026-10-03T21:42:06Z")

</div>

> [@janus](#):
>
> Who gets to define what an effect is?

The person who designs the effect system, which is also constrained by the language design if it is an embedded DSL.

You can imagine a language that is like Haskell, but requires all allocation to happen inside IO. That would be quite a different language. All constructors, lambdas, and let expressions would return a value wrapped in IO.

(Unlifted types have little to do with the allocation itself, more with the memory layout and when evaluation happens; EDIT: un_boxed_ types on the other hand do avoid memory allocation).

---

_[View the full topic](https://discourse.haskell.org/t/you-dont-need-an-effect-system/14792)._
