attenuation-profunctors-0.1.0: Attenuation support for Profunctors.
Safe Haskell None Haskell2010

Data.Type.Attenuation.Profunctor

Description

Attenuations for Profunctors.

Synopsis

# Profunctor Attenuations

lcontra :: (Profunctor p, Representational0 p) => Variance (p b x) (p a x) a b Source #

Lift an Attenuation contravariantly over the left of a Profunctor.

Similarly to the use of Contravariant in contra, we use Profunctor to guarantee contravariance in the appropriate parameter.

rco :: (Profunctor p, Representational1 p) => Variance (p x a) (p x b) a b Source #

Lift an Attenuation covariantly over the right of a Profunctor.

Similarly to the use of Functor in co, we use Profunctor to guarantee covariance in the appropriate parameter.

As with sndco, this functions the same as co, but the needed Functor instance might not be available in polymorphic contexts.

profunctoriality :: forall p a b c d. (Representational0 p, Representational1 p, Profunctor p) => (Attenuable a c, Attenuable b d) :- Attenuable (p c b) (p a d) Source #

Profunctors map attenuations profunctorially.