Haskell, Freer monads
Currently running an NIH'd implementation of final-encoded freer monads in this toy project. I'm not even using extensible effects, but it's still a pretty convenient way of having multiple interpreters without a bunch of typeclass constraints in the signature. Maybe a bit overkill?
I wish IO exceptions in #Haskell didn't feel so bolted on and unergonomic.
I always say my ideal language is #Haskell with strict, but one nice thing about laziness is that you can use thunk vectors to get constant time memoization without using IO/ST
The final encoding of #haskell freer monads is both faster and more intuitive than the initial encoding. As a ReaderT IO person, I'm convinced final freer is a good alternative for most use cases