úÎ)x'     GADTs provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred Coend of  from  Hask -> Hask. MPTCs provisionalEdward Kmett <ekmett@gmail.com>NoneThe cograph of a .  Type-Families provisionalEdward Kmett <ekmett@gmail.com>NoneA  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)*The composition of two   s is   by + the composition of their representations. +,-*./ +,-*./0      !"#$%&'()*+,-./0"12"#3456789:;<=profunctor-extras-3.3Data.Profunctor.TraceData.Profunctor.CollageData.Profunctor.RepData.Profunctor.CompositionData.Profunctor ProfunctorTraceCollageCRLCorepresentableCorep cotabulatecorep RepresentableReptabulaterep tabulated cotabulated Procomposeidlidrupstars downstarskleislis cokleislisprofunctors-3.2Data.Profunctor.Unsafe $fObCollageR $fObCollageL$fSemigroupoidCollagebaseGHC.BaseFunctor$fCorepresentableDownStar$fCorepresentableTagged$fCorepresentableCokleisli$fCorepresentable(->)$fRepresentableUpStar$fRepresentableKleisli$fRepresentable(->)UpStartransformers-0.3.0.0Data.Functor.ComposeComposeDownStar Control.ArrowKleisliMonadcomonad-3.0.1.1Control.Comonad Cokleisli$fRepresentableProcompose$fChoiceProcompose$fStrongProcompose$fCorepresentableProcompose$fFunctorProcompose$fProfunctorProcompose