Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads http://github.com/ekmett/kan-extensions/
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
This package provides tools for working with various Kan extensions and Kan lifts in Haskell.
Among the interesting bits included are:
- Right and left Kan extensions (
- Right and left Kan lifts (
- Multiple forms of the Yoneda lemma (
Codensitymonad, which can be used to improve the asymptotic complexity of code over free monads (
- A “comonad to monad-transformer transformer” that is a special case of a right Kan lift. (
Contributions and bug reports are welcome!
Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
- Allow building with GHC 9.0.
- Add the
Data.Functor.Invariant.Daymodule, which combines the covariant and contravariant versions of
Day. As a result,
kan-extensionsnow depends on the
- Add a
- More efficient
INLINEpragmas on more functions.
- Allow building with
- Change contexts of
Coyoneda) to require lifted class instances, e.g.
Eq1 f, Eq a.
- Removed some redundant constraints
- Builds clean on GHC 7.10
- Remove pointed dependency
- Moved co- and contra- variant
contravariantto here. Day convolution is intimately connected to
CoT w mto model a state machine with states in
wand effects in
- Made fixes necessary to work around changes in
ImpredicativeTypesfor GHC 7.8.1rc2
- Bug fix so we can compile on GHC 7.4
- Now compatible with
- Moved all the
Yonedavariants around again.
- Improved haddocks
Data.Functor.Contravariant.Yonedato complete the set of Yoneda embeddings/reductions.
- Added several missing isomorphisms
instance Monad m => MonadSpec (Yoneda m)
- Fixed a bug in the signature for
- More combinators for
- Added combinators for working with representable functors rather than just adjoint functors.
- Moved from
Data.Functor.Yoneda.Reductionadopting terminology from Todd Trimble.
- Added various missing isomorphisms.
- Greatly improved the Haddocks for this package stating laws and derivations where we can (especially for ‘Rift’ and ‘Ran’).
- Rift is now
- Added right and left Kan lifts under
- Decreased reliance on the
Compositionclass where unnecessary in the API
- Marked modules
Trustworthyas required for
SafeHaskellin the presence of these extensions.
- Refactored build system
- IRC build-bot notification
- Removed upper bounds on dependencies on my other packages
Control.Monad.Free.Churchover to the
freepackage instead and removed it from