packages feed

monad-control-aligned-0.0.1.1: README.markdown

# monad-control-aligned

An alternative edition of monad-control that forces all state data types to:

- be exposed at the `Constraint` level
- be aligned s.t. the state is of kind `* -> *`, wherein the subject data type is indeed the monadic value `a` in `m a`;
  this opposes the `StateT` and `WriterT` definitions, 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.