Changelog for di-monad-1.3.1
Version 1.3.1
- Instance
MonadError e m => MonadError e (DiT level path msg m)
Version 1.3
-
The
MonadThrow
instance forDiT
doesn't log exceptions automatically any more. This is because otherwise catching and re-throwing exceptions in downstream code, by default, ends up logging the same exception more than once. -
A
throw
function behaving as the previousMonadThrow
instance forDiT
was introduced. -
Documentation improvements.
Version 1.2
- The
MonadMask
constraint added in Version 1.1 is gone, effecively undoing the breaking change introduced in Version 1.1.
Version 1.1
-
BREAKING CHANGE: The
MonadThrow
instance forDiT level path msg m
instance now relies onDi.Core.throw
, potentially logging exceptions at the throw site. This introduces a newMonadMask m
instance constraint which can't be satisfied bySTM
. There is aDiT level path msg STM
instance that skips logging exceptions (which is the only sensible behavior, anyway). However, if yourm
is not exactlySTM
but some wrapper around it, you will need to provide aMonadThrow
instance manually or useDi.Core.throw'
directly. On the other hand, satisfying thisMonadMask
constraint should be easy for monads that can runIO
. -
Added
onException
.
Version 1.0.2
- Backwards compatibility with
mtl < 2.2.2
.
Version 1.0.1
- Backwards compatibility with
transformers < 0.5.3
.
Version 1.0
- This is a new library part of the
di-core
ecosystem. Consider this first release of the new ecosystem a preview release: The API is likely to stay stable, but extensive testing, formalization and tooling is due.