packages feed

di-monad-1.3.3: CHANGELOG.md

# Version 1.3.3

* Add `MonadBase`, `MonadBaseControl`, `PrimMonad` and `MonadSafe` instances
  for `DiT`.

* Add Cabal flags for optional third-party libraries support: `monad-control`,
  `pipes`, `pipes-safe`, `primitive`, `streaming`, `transformers-base`,
  `unliftio-core`.


# Version 1.3.2

* Add `MonadUnliftIO` instance for `DiT`.

* Add `MonadDi` instance for `streaming`'s `Stream`.


# Version 1.3.1

* Add `MonadError` instance for `DiT`.

# Version 1.3

* The `MonadThrow` instance for `DiT` 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 previous `MonadThrow` instance for `DiT`
  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 for `DiT level path msg
  m` instance now relies on `Di.Core.throw`, potentially logging
  exceptions _at the throw site_.  This introduces a new `MonadMask m`
  instance constraint which can't be satisfied by `STM`. There is a
  `DiT level path msg STM` instance that skips logging exceptions (which
  is the only sensible behavior, anyway). However, if your `m` is not
  exactly `STM` but some wrapper around it, you will need to provide a
  `MonadThrow` instance manually or use `Di.Core.throw'` directly. On
  the other hand, satisfying this `MonadMask` constraint should be easy
  for monads that can run `IO`.

* 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.