Just like monad-control, except less efficient, and the monadic state terms are all * -> * https://github.com/athanclark/monad-control#readme
|LTS Haskell 15.15:||0.0.1.1|
|Stackage Nightly 2020-06-01:||0.0.1.1|
|Latest on Hackage:||0.0.1.1|
An alternative edition of monad-control that forces all state data types to:
- be exposed at the
- be aligned s.t. the state is of kind
* -> *, wherein the subject data type is indeed the monadic value
m a; this opposes the
WriterTdefinitions, whos’ state types are in the form of
(a, s); opposing curried type application indeed. Our edition enforces instances in the form of
(,) s- thus leaving the last applied type polymorphic, achieving our goal of
* -> *aligned [tm] state type.
This just allows us to use extractable-singleton to run our state type - useful for obtaining the subject data while running in a lifted context - basically exactly the same as what monad-unlift does.