- class (Contravariant f, Corepresentable g) => Adjunction f g | f -> g, g -> f where
- corepAdjunction :: Adjunction f g => (a -> f ()) -> g a
- coindexAdjunction :: Adjunction f g => g a -> a -> f ()
An adjunction from Hask^op to Hask
Op (f a) b ~ Hask a (g b)
rightAdjunct unit = id leftAdjunct counit = id
Any adjunction from Hask to Hask^op would indirectly permit unsafePerformIO, and therefore does not exist.
Represent a contravariant functor that has a left adjoint