This library defines specializations for certain monad transformers to make them more performant.
Currently monad transformers in Scala are extremely slow compared to their Haskell counterparts.
Part of this performance penalty is the fact that monad transformers are extremely general and allow us to stack any amounts of transformers on top of each other.
The idea in this library is to use specialited transformers that only work with very specific underlying monads to improve performance.
These new "transformers" are still polymorphic on their
F type, but only work when the given
F defines instances for the various
cats-effect type classes.
ReaderEff[F, R, A] will only have an instance of
F has an instance of
Right now the only transformers are
EitherEff, both are more specific versions of
Future versions should include transformers like
WriterEff as well as combinations such as