úÎ(Ö$—5      !"#$%&'()*+,-./01234MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> Trustworthy 56789    56789MPTCs provisionalEdward Kmett <ekmett@gmail.com> Trustworthy An adjunction from Hask^op to Hask  : (f a) b ~ Hask a (g b)      = ;      = ; Any adjunction from Hask to Hask^op would indirectly  permit unsafePerformIO , and therefore does not exist.  Represent a <! functor that has a left adjoint =This gives rise to the  Cont Bool > ?This   gives rise to the Cont > =?    =?MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> Trustworthy @AB@ABrank 2 types, MPTCs, fundeps experimentalEdward Kmett <ekmett@gmail.com> Trustworthy%An adjunction between Hask and Hask. Minimal definition: both  and  or both   and ,, subject to the constraints imposed by the : default definitions that the following laws should hold.   unit = leftAdjunct id  counit = rightAdjunct id  leftAdjunct f = fmap f . unit " rightAdjunct f = counit . fmap f .Any implementation is required to ensure that  and   witness an isomorphism from  Nat (f a, b) to   Nat (a, g b)  rightAdjunct unit = id  leftAdjunct counit = id 9Every right adjoint is representable by its left adjoint  applied to a unit element *Use this definition and the primitives in < Data.Functor.Representable to meet the requirements of the  superclasses of Representable. #,A right adjoint functor admits an intrinsic  notion of zipping $+Every functor in Haskell permits unzipping &;A left adjoint must be inhabited, or we can derive bottom. '<And a left adjoint must be inhabited by exactly one element (!Every functor in Haskell permits  uncozipping  !"#$%&'(CDEFGHIJ !"#$%&'(#$&%'(!"  !"#$%&'(CDEFGHIJMPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> Trustworthy )*+,-.KLMN)*+,-.,.-)*+)*+,-.KLMNMPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> TrustworthyOiExploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT /01234OPQR/01234243/01/01234OPQRS      !"#$%&'()*+,-./0123./45126789:;<=>?@ABCDE:F89:Gadjunctions-3.2.1Control.Monad.Trans.Conts%Data.Functor.Contravariant.Adjunction)Control.Monad.Trans.Contravariant.AdjointData.Functor.AdjunctionControl.Comonad.Trans.AdjointControl.Monad.Trans.AdjointContsT runContsTContsContcontrunContcontsrunContscallCC Adjunctionunitcounit leftAdjunct rightAdjunctcontrarepAdjunctioncoindexAdjunctionAdjointT runAdjointTAdjointadjoint runAdjointtabulateAdjunctionindexAdjunctionzapWithAdjunctionsplitLunsplitLextractL duplicateLzipRunzipRabsurdL unabsurdLcozipLuncozipL$fMonadTransContsT $fMonadContsT$fApplicativeContsT $fApplyContsT$fFunctorContsTcontravariant-0.4.1Data.Functor.ContravariantOpbaseGHC.Baseid Contravariant$fAdjunctionPredicatePredicateMonad$fAdjunctionOpOp$fMonadAdjointT$fApplicativeAdjointT$fFunctorAdjointT$fAdjunctionFreeCofree$fAdjunctionCoproductProduct$fAdjunctionComposeCompose$fAdjunctionWriterTTracedT$fAdjunctionEnvTReaderT$fAdjunctionIdentityTIdentityT$fAdjunctionIdentityIdentity$fAdjunction(,)(->)$fComonadTransAdjointT$fComonadAdjointT$fExtendAdjointT$fMonadTransAdjointT