I often see effects called "fancy," but in 2024 I fail to see how that is the case. If anything, their types are more clear than mtl
in 2024.
I've been using extensible effects (via cleff
[1]) in my gamedev code since 2021 (starting with Ludum Dare 49). I originally used mtl
, but it was almost immediately a pain. I saw cleff
and switched to it within a day (for both library code + my previous game). I can confidently say I'll never use mtl
again if I have any choice. It's archaic and brings no benefit besides somehow being considered less fancy.
I say "somehow" because I don't really understand why mtl
is considered less fancy than cleff
. Maybe it's because it's fancier to implement? But the whole point of Haskell is that you shouldn't need to care about the implementation if