%zA      !"#$%&'()*+,-./0123456789:;<=>?@GADTs, MPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> Trustworthy>The contravariant Yoneda lemma applied to a covariant functor 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab&ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abMPTCs, fundeps provisionalEdward Kmett <ekmett@gmail.com> Trustworthy, cdefghijklmnopqrstuvwxyz{|}~   * cdefghijklmnopqrstuvwxyz{|}~ rank 2 types experimentalEdward Kmett <ekmett@gmail.com> Trustworthy and * witness a higher kinded adjunction. from ( `'Compose'` g) to  g  and  ) witness the natural isomorphism between Lan f h and  Compose h g given f -| g !! and "& witness the natural isomorphism from Lan f (Lan g h) and Lan (f o g) h  !" !" !" !""non-portable (rank-2 polymorphism) provisionalEdward Kmett <ekmett@gmail.com> Trustworthy)GRight associate all binds in a computation that generates a free monad L This can improve the asymptotic efficiency of the result, while preserving  semantics. #$%&'()#$%&'()#$%&'()#$%&'()"non-portable (rank-2 polymorphism) provisionalEdward Kmett <ekmett@gmail.com> Trustworthy*+,-./0123456789:;*+,-./0123456789:;-./*+,0123456789:;*+,-./0123456789:;non-portable (GADTs, MPTCs) experimentalEdward Kmett <ekmett@gmail.com> Trustworthy>WThe natural isomorphism between a comonad w and the comonad generated by w (forwards). <=>?@<=>?@<=>?@ <=>?@       !"##$%&'())*+,-./0123456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_LMN`TRSUVYWX?@AB>OQPCDFEGHJIKZ[\]^_abcdefghijklmnopqrstuvwxyz{|}~kan-extensions-3.1.2!Data.Functor.Yoneda.ContravariantData.Functor.YonedaData.Functor.KanExtensionControl.Monad.CodensityControl.Monad.CoControl.Comonad.DensityYoneda liftYoneda lowerYonedalowerM runYonedamaxFminFmaxMminMLanRanrunRantoRanfromRan composeRan decomposeRan adjointToRan ranToAdjointranToComposedAdjointcomposedAdjointToRantoLanfromLan adjointToLan lanToAdjointlanToComposedAdjointcomposedAdjointToLan composeLan decomposeLan Codensity runCodensitylowerCodensitycodensityToAdjunctionadjunctionToCodensityimproveCoTrunCoTCocorunColiftCoT0 lowerCoT0lowerCo0liftCoT1 lowerCoT1lowerCo1posWpeekWpeeksWaskWasksWtraceWDensity liftDensitydensityToAdjunctionadjunctionToDensity$fAdjunctionYonedaYoneda $fOrdYoneda $fEqYoneda $fReadYoneda $fShowYoneda$fDistributiveYoneda$fTraversableWithKey1Yoneda$fTraversableWithKeyYoneda$fTraversable1Yoneda$fTraversableYoneda$fFoldableWithKey1Yoneda$fFoldable1Yoneda$fFoldableWithKeyYoneda$fFoldableYoneda$fComonadTransYoneda$fComonadYoneda$fExtendYoneda$fRepresentableYoneda$fIndexableYoneda$fLookupYoneda$fMonadPlusYoneda$fMonadFixYoneda$fMonadTransYoneda $fMonadYoneda $fBindYoneda $fPlusYoneda $fAltYoneda$fAlternativeYoneda$fZipWithKeyYoneda $fZipYoneda$fApplicativeYoneda $fApplyYoneda $fKeyedYoneda$fFunctorYoneda$fMonadFreefYoneda$fApplicativeLan $fApplyLan $fFunctorLan $fFunctorRan$fMonadStaterCodensity$fMonadFreefCodensity$fMonadPlusCodensity$fAlternativeCodensity$fPlusCodensity$fAltCodensity$fMonadTransCodensity$fMonadIOCodensity$fMonadCodensity$fApplicativeCodensity$fApplyCodensity$fFunctorCodensity$fMonadSpecCodensity$fMonadErroreCoT$fMonadWritereCoT$fMonadStatesCoT$fMonadReadereCoT $fMonadIOCoT$fMonadTransCoT $fMonadCoT$fApplicativeCoT $fBindCoT $fApplyCoT $fFunctorCoT$fMonadSpecCoT$fApplicativeDensity$fApplyDensity$fComonadTransDensity$fComonadDensity$fExtendDensity$fFunctorDensity