úÎ4#1)     GADTs provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred Coend of  from  Hask -> Hask. MPTCs provisionalEdward Kmett <ekmett@gmail.com> TrustworthyThe cograph of a .  ! ! Type-Families provisionalEdward Kmett <ekmett@gmail.com> TrustworthyA  p is  if there exists a " f such that  p d c is isomorphic to f d -> c. A  p is   if there exists a " f such that  p d c is isomorphic to d -> f c.   and  $ form two halves of an isomorphism. /This can be used with the combinators from the lens package.  ::   p => Iso' (d ->   p c) (p d c) and  $ form two halves of an isomorphism. /This can be used with the combinators from the lens package.  ::  f p => Iso' (f d -> c) (p d c) #$%&'()       #$%&'()GADTs provisionalEdward Kmett <ekmett@gmail.com> Trustworthy p q is the  composition of the  s p and q. For a good explanation of  composition in Haskell  see Dan Piponi' s article:  :http://blog.sigfpe.com/2011/07/profunctors-in-haskell.html (->)! functions as a lax identity for  composition. This provides an Iso for the lens package that witnesses the  isomorphism between  (->) q d c and q d c, which  is the left identity law.    ::  q => Iso' ( (->) q d c) (q d c) (->)! functions as a lax identity for  composition. This provides an Iso for the lens package that witnesses the  isomorphism between  q (->) d c and q d c, which  is the right identity law.    ::  q => Iso' ( q (->) d c) (q d c)  composition generalizes " composition in two ways. $This is the first, which shows that exists b. (a -> f b, b -> g c) is  isomorphic to  a -> f (g c).  :: " f => Iso' ( (* f) (* g) d c) (* (+ f g) d c) composition generalizes " composition in two ways. %This is the second, which shows that exists b. (f a -> b, g b -> c) is  isomorphic to  g (f a) -> c.  :: " f => Iso' ( (, f) (, g) d c) (, (+ g f) d c)This is a variant on  that uses - instead of *.  :: . f => Iso' ( (- f) (- g) d c) (- (+ f g) d c)This is a variant on  that uses / instead  of ,.  :: " f => Iso' ( (/ f) (/ g) d c) (/ (+ g f) d c)0The composition of two   s is   by + the composition of their representations. 123045  123045 Rank2Types provisionalEdward Kmett <ekmett@gmail.com> Trustworthy(This represents the right Kan lift of a  q along a  pã in a limited version of the 2-category of Profunctors where the only object is the category Hask, 1-morphisms are profunctors composed and compose with Profunctor composition, and 2-morphisms are just natural transformations. .The 2-morphism that defines a right Kan lift.  Note: When f is left adjoint to  f (->) then  is the counit of the adjunction. 6 p p forms a . in the . 2-category, which is isomorphic to a Haskell 7 instance. 689689:      !"#$%&'()*+,-./01#2345#6(78()9:;<=>?@ABC(DEFGHprofunctor-extras-3.3.3.1Data.Profunctor.TraceData.Profunctor.CollageData.Profunctor.RepData.Profunctor.CompositionData.Profunctor.RiftData.Profunctor ProfunctorTraceCollageCRLCorepresentableCorep cotabulatecorep RepresentableReptabulaterep tabulated cotabulated Procompose procomposedidlidrupstars downstarskleislis cokleislisRiftrunRift decomposeRiftprecomposeRiftprofunctors-3.3.0.1Data.Profunctor.Unsafe $fObCollageR $fObCollageL$fSemigroupoidCollagebaseGHC.BaseFunctor$fCorepresentableDownStar$fCorepresentableTagged$fCorepresentableCokleisli$fCorepresentable(->)$fRepresentableUpStar$fRepresentableKleisli$fRepresentable(->)UpStartransformers-0.3.0.0Data.Functor.ComposeComposeDownStar Control.ArrowKleisliMonad comonad-3.1Control.Comonad Cokleisli$fRepresentableProcompose$fChoiceProcompose$fStrongProcompose$fCorepresentableProcompose$fFunctorProcompose$fProfunctorProcompose$fCategoryRiftControl.CategoryCategory $fFunctorRift$fProfunctorRift