- class (Contravariant f, Contravariant g) => DualAdjunction f g | f -> g, g -> f where
- unitOp :: g (f a) -> a
- counitOp :: f (g a) -> a
- leftAdjunctOp :: (f a -> b) -> g b -> a
- rightAdjunctOp :: (g b -> a) -> f a -> b
Documentation
class (Contravariant f, Contravariant g) => DualAdjunction f g | f -> g, g -> f whereSource
An adjunction from Hask to Hask^op
Hask (f a) b ~ Op a (g b)
rightAdjunct unit = id leftAdjunct counit = id
counitOp :: f (g a) -> aSource
leftAdjunctOp :: (f a -> b) -> g b -> aSource
rightAdjunctOp :: (g b -> a) -> f a -> bSource