BSD-3-Clause licensed by Edward A. Kmett
This version can be pinned in stack with:kan-extensions-5.0.2@sha256:12de0fdcbff3f4fa7d0da89da88709cc8d6d14b7e3f9fe5f007fc011285e17af,1972
Module documentation for 5.0.2
- Control
- Control.Comonad
- Control.Monad
- Data
Depends on 13 packages
(full list with versions):
adjunctions,
array,
base,
comonad,
containers,
contravariant,
distributive,
fail,
free,
mtl,
semigroupoids,
tagged,
transformers kan-extensions

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 (
Ran and Lan)
- Right and left Kan lifts (
Rift and Lift)
- Multiple forms of the Yoneda lemma (
Yoneda)
- The
Codensity monad, which can be used to improve the asymptotic complexity of code over free monads (Codensity, Density)
- A “comonad to monad-transformer transformer” that is a special case of a right Kan lift. (
CoT, Co)
Contact Information
Contributions and bug reports are welcome!
Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
-Edward Kmett
5.0.2
5.0.1
- Removed some redundant constraints
5
- Move
Data.Functor.Kan.Rift to Data.Functor.Day.Curried
4.2.3
4.2.2
4.2.1
- Add
liftRift and lowerRift
4.2
- Remove pointed dependency
4.1.1
- Added
Applicative instance for Day
- Added
Typeable instance for Codensity
4.1.0.1
4.1
- Moved co- and contra- variant
Day convolution from contravariant to here. Day convolution is intimately connected to Rift.
4.0.3
- Added
liftCoT0M, liftCoT1M, diter and dctrlM for using CoT w m to model a state machine with states in w and effects in m.
4.0.2
- Made fixes necessary to work around changes in
ImpredicativeTypes for GHC 7.8.1rc2
4.0.1
- Bug fix so we can compile on GHC 7.4
4.0
- Removed
keys dependency
- Now compatible with
adjunctions 4.0
3.7
- Moved all the
Yoneda variants around again.
- Improved haddocks
3.6.2
- Added
Data.Functor.Contravariant.Yoneda to complete the set of Yoneda embeddings/reductions.
3.6.1
- Added several missing isomorphisms
3.6
instance Monad m => MonadSpec (Yoneda m)
3.5.1
- Fixed a bug in the signature for
composedRepToCodensity.
3.5
- More combinators for
Rift/Lift.
- Added combinators for working with representable functors rather than just adjoint functors.
- Split
Data.Functor.KanExtension into Data.Functor.Kan.Ran and Data.Functor.Kan.Lan
- Split
Data.Functor.KanLift into Data.Functor.Kan.Rift and Data.Functor.Kan.Lift
- Moved from
Data.Functor.Yoneda.Contravariant to Data.Functor.Yoneda.Reduction adopting 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’).
3.3
- Rift is now
Applicative. Added rap.
3.2
- Added right and left Kan lifts under
Data.Functor.KanLift.
- Decreased reliance on the
Composition class where unnecessary in the API
3.1.2
- Marked modules
Trustworthy as required for SafeHaskell in the presence of these extensions.
3.1.1
- Refactored build system
- IRC build-bot notification
- Removed upper bounds on dependencies on my other packages
3.1
- Moved
Control.Monad.Free.Church over to the free package instead and removed it from kan-extensions