úÎ4-­x      !"#$%&'()*+,-./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 ~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 x'This gives rise to the Cont Bool monad y-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 #$%&'  !"#$%&' "#$%& !'  ! !"#$%&#$%&'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>-./012ziExploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT -./012021-./-././012"non-portable (rank-2 polymorphism) provisionalEdward Kmett <ekmett@gmail.com>34567834567834567834545678 rank-2 types, MPTCs experimentalEdward Kmett <ekmett@gmail.com>9:;<=>?@{ABCDE 9:;<=>?@ABCDE <=>?@AB9:;CDE 9:;:;<=>=>?@ABCDE MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>FGHIJKLMNOPQRSFGHIJKLMNOPQRSIJKLMFGHNOPQRSFGHGHIJKLMNOPQRS GADTs, MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> T>The contravariant Yoneda lemma applied to a covariant functor UVWXYZ[\ TUVWXYZ[\ VWXYZ[\TU TUUVWXYZ[\  rank 2 types experimentalEdward Kmett <ekmett@gmail.com>]^_`abb and c* witness a higher kinded adjunction. from ( `'Compose'` g) to `_ g cdefghijklmnn and o) witness the natural isomorphism between Lan f h and  Compose h g given f -| g opp and q& witness the natural isomorphism from Lan f (Lan g h) and Lan (f o g) h q]^_`abcdefghijklmnopq_`abcdefghi]^jklmnopq]^^_`a`abcdefghijklmnopq MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com>rstuvwrstuvwuwvrstrststuvw|  !"#$%&'())*+,--./01 2 2 3 4 4 5 6 7 8 9 : ; < = = > ? @ A B C D E F G H I = = ? @ B C D E J K K L L M N O P Q R S T U V W X Y Z [ \ ]      ^_` abadjunctions-0.5.2Data.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 runContsTContsContcontrunContcontsrunContscallCCDensityT liftDensityTdensityTToAdjunctionadjunctionToDensityT CodensityT runCodensityTlowerCodensityTcodensityTToAdjunctionadjunctionToCodensityTBizap bizapWithZapzapWithzapflipZap zapAdjunction composeZapbizap flipBizapbizapProductSumYonedaT runYonedaTYonedayoneda runYoneda liftYoneda lowerYoneda liftYonedaT lowerYonedaTmaxFminFmaxMminMlowerMLanRanrunRantoRanfromRan composeRan decomposeRan adjointToRan ranToAdjointranToComposedAdjointcomposedAdjointToRantoLanfromLan adjointToLan lanToAdjointlanToComposedAdjointcomposedAdjointToLan composeLan decomposeLan$fAdjunctionPredicatePredicate$fAdjunctionOpOp$fMonadTransAdjointTstrength