úÎ7.0Íy      !"#$%&'()*+,-./0123456789: ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x ~We often need to distinguish between various forms of Functor-like composition in Haskell in order to please the type system. 9 This lets us work with these representations uniformly.  ,A representation of a contravariant functor #An adjunction from Hask^op to Hask   Op (f a) b ~ Hask a (g b)   rightAdjunct unit = id  leftAdjunct counit = id 5Any adjunction from Hask to Hask^op would indirectly 7 permit unsafePerformIO, and therefore does not exist.  :Represent a contravariant functor that has a left adjoint y'This gives rise to the Cont Bool monad z-This adjunction gives rise to the Cont monad      MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>    rank 2 types, MPTCs, fundeps experimentalEdward Kmett <ekmett@gmail.com>  !"%An adjunction between Hask and Hask.  rightAdjunct unit = id  leftAdjunct counit = id #$%&'JEvery right adjoint is representable by its left adjoint applied to unit I Consequently, we use the isomorphism from ((->) f ()) ~ g to distribute + the right adjoint over any other functor. (  !"#$%&'( "#$%&' !(  ! !"#$%&#$%&'(non-portable (GADTs, MPTCs) experimentalEdward Kmett <ekmett@gmail.com>)*+WThe natural isomorphism between a comonad w and the comonad generated by w (forwards). ,-)*+,-)*+,-)**+,-MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>./0123{iExploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT ./0123132./0./0/0123"non-portable (rank-2 polymorphism) provisionalEdward Kmett <ekmett@gmail.com>45678945678945678945656789 rank-2 types, MPTCs experimentalEdward Kmett <ekmett@gmail.com>:;<=>?@A|BCDEF :;<=>?@ABCDEF =>?@ABC:;<DEF :;<;<=>?>?@ABCDEF MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>GHIJKLMNOPQRSTGHIJKLMNOPQRSTJKLMNGHIOPQRSTGHIHIJKLMNOPQRST GADTs, MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> U>The contravariant Yoneda lemma applied to a covariant functor VWXYZ[\] UVWXYZ[\] WXYZ[\]UV UVVWXYZ[\]  rank 2 types experimentalEdward Kmett <ekmett@gmail.com>^_`abcc and d* witness a higher kinded adjunction. from ( `'Compose'` g) to a` g defghijklmnoo and p) witness the natural isomorphism between Lan f h and  Compose h g given f -| g pqq and r& witness the natural isomorphism from Lan f (Lan g h) and Lan (f o g) h r^_`abcdefghijklmnopqr`abcdefghij^_klmnopqr^__`ababcdefghijklmnopqr MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>stuvwxstuvwxvxwstustutuvwx}  !"#$%&'()**+,-../012 3 3 4 5 5 6 7 8 9 : ; < = > > ? @ A B C D E F G H I J > > @ A C D E F K L L M M N O P Q R S T U V W X Y Z [ \ ] ^      _`a bcadjunctions-0.6.0Data.Functor.Composition%Data.Functor.Contravariant.Adjunction)Control.Monad.Trans.Contravariant.AdjointControl.Monad.Trans.ContsData.Functor.AdjunctionControl.Comonad.Trans.DensityControl.Monad.Trans.AdjointControl.Monad.Trans.CodensityData.Functor.ZapData.Functor.Yoneda!Data.Functor.Yoneda.ContravariantData.Functor.KanExtensionControl.Comonad.Trans.Adjoint Composition decomposecomposeRepresentationrepunrep Adjunctionunitcounit leftAdjunct rightAdjunct repAdjunctionrepFlippedAdjunctionAdjointT runAdjointTAdjointadjoint runAdjointContsT runContsTContsContcontrunContcontsrunContscallCCdistributeAdjunctDensityT liftDensityTdensityTToAdjunctionadjunctionToDensityT CodensityT runCodensityTlowerCodensityTcodensityTToAdjunctionadjunctionToCodensityTBizap bizapWithZapzapWithzapflipZap zapAdjunction composeZapbizap flipBizapbizapProductSumYonedaT runYonedaTYonedayoneda runYoneda liftYoneda lowerYoneda liftYonedaT lowerYonedaTmaxFminFmaxMminMlowerMLanRanrunRantoRanfromRan composeRan decomposeRan adjointToRan ranToAdjointranToComposedAdjointcomposedAdjointToRantoLanfromLan adjointToLan lanToAdjointlanToComposedAdjointcomposedAdjointToLan composeLan decomposeLan$fAdjunctionPredicatePredicate$fAdjunctionOpOp$fMonadTransAdjointTstrength