úÎfû     portable provisionalEdward Kmett <ekmett@gmail.com>None The generalization of  of a "Costrong"  Note: Here we use  as an approximate costrength.  Generalizing upstar of a strong  Note: Every  in Haskell is strong. Wrap an arrow for use as a   Lift a  into a   (backwards) Lift a  into a   (forwards)  Formally,   represents a  profunctor from Hask -> Hask HIntuitively it is a bifunctor where the first argument is contravariant ' and the second argument is covariant. /You can define a profunctor by either defining  or by defining both   and . If you supply , you should ensure that:     "a If you supply  and  , ensure:      "a     "a  ,If you supply both, you should also ensure:   f g "a  f .  gThese ensure by parametricity:    (f  g) (h  i) "a  g h   f i   (f  g) "a  g   f   (f  g) "a  f   g *Map over both arguments at the same time.  f g "a  f   g'Map the first argument contravariantly  f "a  f $Map the second argument covariantly  "a   approximates  costrength  approximates  costrength *  !"#$%&'()*+,-.       !"#$%&'()*+,-./        !"#$%&'()*+,-./0123profunctors-3.1.1Data.Profunctor Prismatic prismatic Lenticular lenticular WrappedArrow WrapArrow unwrapArrowDownStar runDownStarUpStar runUpStar ProfunctordimaplmaprmapbaseGHC.BaseFunctorData.Traversable TraversableControl.Categoryid.$fPrismaticDownStarsequence$fPrismaticCokleisli$fPrismaticWrappedArrow$fPrismaticTagged$fPrismaticKleisli$fPrismatic(->)$fLenticularWrappedArrow$fLenticularUpStar$fLenticularKleisli$fLenticular(->)$fProfunctorWrappedArrow$fArrowLoopWrappedArrow$fArrowApplyWrappedArrow$fArrowChoiceWrappedArrow$fArrowZeroWrappedArrow$fArrowWrappedArrow$fCategoryWrappedArrow$fFunctorDownStar$fProfunctorDownStar$fFunctorUpStar$fProfunctorUpStar$fProfunctorCokleisli$fProfunctorKleisli$fProfunctorTagged$fProfunctor(->)