4 ms·
Basically StateT uses Either to model either the application state or an error. So if your application throws, you lose the current state forever. They sort of
by thdhhghgbhy 2y ago
Basically StateT uses Either to model either the application state or an error. So if your application throws, you lose the current state forever. They sort of painted themselves into a corner with this choice of type, there's no real way out now.
This explains in more detail:
https://github.com/haskell-effectful/effectful/blob/master/transformers.md https://github.com/haskell-effectful/effectful/blob/master/t...
I agree loosely with what haskman above says about creating relatively bug free applications, the guard rails are so robust. But those same guard rails mean you can paint yourself into a corner that it is harder to get out of without imperative state, case in point above.