Portability | non-portable (functional-dependencies) |
---|---|
Stability | experimental |
Maintainer | Edward Kmett <ekmett@gmail.com> |
- class (Functor f, Functor g) => Adjunction f g where
- unit :: a -> g (f a)
- counit :: f (g a) -> a
- leftAdjunct :: (f a -> b) -> a -> g b
- rightAdjunct :: (a -> g b) -> f a -> b
- newtype ACompF f g a = ACompF (CompF f g a)
Documentation
class (Functor f, Functor g) => Adjunction f g whereSource
An Adjunction
formed by the Functor
f and Functor
g.
leftAdjunct :: (f a -> b) -> a -> g bSource
rightAdjunct :: (a -> g b) -> f a -> bSource
Adjunction-oriented composition, yields monads and comonads from adjunctions
Composition ACompF | |
Adjunction f g => Monad (ACompF g f) | |
(Functor f, Functor g) => Functor (ACompF f g) | |
Adjunction f g => Applicative (ACompF g f) | |
(Full f, Full g) => Full (ACompF f g) | |
Adjunction f g => Copointed (ACompF f g) | |
Adjunction f g => Pointed (ACompF g f) | |
(ExpFunctor f, ExpFunctor g) => ExpFunctor (ACompF f g) | |
Adjunction f g => Comonad (ACompF f g) |