monoidal-functors-0.1.1.0: Monoidal Functors Library
Safe HaskellNone
LanguageHaskell2010

Data.Bifunctor.BiInvariant

Documentation

class BiInvariant p where Source #

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> p a b -> p a' b' Source #

Instances

Instances details
BiInvariant Either Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Either a b -> Either a' b' Source #

BiInvariant (,) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (a, b) -> (a', b') Source #

BiInvariant Arg Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Arg a b -> Arg a' b' Source #

BiInvariant These Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> These a b -> These a' b' Source #

BiInvariant ((,,) x1) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (x1, a, b) -> (x1, a', b') Source #

Monad m => BiInvariant (Kleisli m) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Kleisli m a b -> Kleisli m a' b' Source #

BiInvariant (Const :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Const a b -> Const a' b' Source #

Bifunctor bi => BiInvariant (Biap bi) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Biap bi a b -> Biap bi a' b' Source #

BiInvariant (Yoneda p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Yoneda p a b -> Yoneda p a' b' Source #

BiInvariant (Coyoneda p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Coyoneda p a b -> Coyoneda p a' b' Source #

Profunctor p => BiInvariant (CofreeMapping p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> CofreeMapping p a b -> CofreeMapping p a' b' Source #

BiInvariant (FreeMapping p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> FreeMapping p a b -> FreeMapping p a' b' Source #

Profunctor p => BiInvariant (CofreeTraversing p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> CofreeTraversing p a b -> CofreeTraversing p a' b' Source #

BiInvariant (FreeTraversing p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> FreeTraversing p a b -> FreeTraversing p a' b' Source #

Profunctor p => BiInvariant (TambaraSum p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> TambaraSum p a b -> TambaraSum p a' b' Source #

BiInvariant (PastroSum p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> PastroSum p a b -> PastroSum p a' b' Source #

BiInvariant (CotambaraSum p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> CotambaraSum p a b -> CotambaraSum p a' b' Source #

BiInvariant (CopastroSum p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> CopastroSum p a b -> CopastroSum p a' b' Source #

Profunctor p => BiInvariant (Closure p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Closure p a b -> Closure p a' b' Source #

BiInvariant (Environment p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Environment p a b -> Environment p a' b' Source #

Profunctor p => BiInvariant (Tambara p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Tambara p a b -> Tambara p a' b' Source #

BiInvariant (Pastro p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Pastro p a b -> Pastro p a' b' Source #

BiInvariant (Cotambara p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Cotambara p a b -> Cotambara p a' b' Source #

BiInvariant (Copastro p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Copastro p a b -> Copastro p a' b' Source #

BiInvariant (Tagged :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Tagged a b -> Tagged a' b' Source #

Bifunctor p => BiInvariant (FromBifunctor p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> FromBifunctor p a b -> FromBifunctor p a' b' Source #

Profunctor p => BiInvariant (FromProfunctor p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> FromProfunctor p a b -> FromProfunctor p a' b' Source #

BiInvariant ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (a -> b) -> a' -> b' Source #

BiInvariant (K1 i :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> K1 i a b -> K1 i a' b' Source #

BiInvariant ((,,,) x1 x2) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (x1, x2, a, b) -> (x1, x2, a', b') Source #

Functor w => BiInvariant (Cokleisli w) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Cokleisli w a b -> Cokleisli w a' b' Source #

Functor f => BiInvariant (Star (FromFunctor f)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Star (FromFunctor f) a b -> Star (FromFunctor f) a' b' Source #

Functor f => BiInvariant (Costar f) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Costar f a b -> Costar f a' b' Source #

BiInvariant (Forget r :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Forget r a b -> Forget r a' b' Source #

BiInvariant ((,,,,) x1 x2 x3) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (x1, x2, x3, a, b) -> (x1, x2, x3, a', b') Source #

Bifunctor p => BiInvariant (WrappedBifunctor p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> WrappedBifunctor p a b -> WrappedBifunctor p a' b' Source #

Functor f => BiInvariant (Joker (FromFunctor f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Joker (FromFunctor f) a b -> Joker (FromFunctor f) a' b' Source #

Functor f => BiInvariant (Joker (FromContra f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Joker (FromContra f) a b -> Joker (FromContra f) a' b' Source #

Bifunctor p => BiInvariant (Flip p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Flip p a b -> Flip p a' b' Source #

Functor f => BiInvariant (Clown (FromFunctor f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Clown (FromFunctor f) a b -> Clown (FromFunctor f) a' b' Source #

Contravariant f => BiInvariant (Clown (FromContra f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Clown (FromContra f) a b -> Clown (FromContra f) a' b' Source #

Profunctor p => BiInvariant (Codensity p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Codensity p a b -> Codensity p a' b' Source #

Arrow p => BiInvariant (WrappedArrow p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> WrappedArrow p a b -> WrappedArrow p a' b' Source #

BiInvariant ((,,,,,) x1 x2 x3 x4) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (x1, x2, x3, x4, a, b) -> (x1, x2, x3, x4, a', b') Source #

(Bifunctor p, Bifunctor q) => BiInvariant (Sum (FromBifunctor p) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Sum (FromBifunctor p) (FromBifunctor q) a b -> Sum (FromBifunctor p) (FromBifunctor q) a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Sum (FromProfunctor p) (FromProfunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Sum (FromProfunctor p) (FromProfunctor q) a b -> Sum (FromProfunctor p) (FromProfunctor q) a' b' Source #

(Bifunctor p, Bifunctor q) => BiInvariant (Product (FromBifunctor p) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Product (FromBifunctor p) (FromBifunctor q) a b -> Product (FromBifunctor p) (FromBifunctor q) a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Product (FromProfunctor p) (FromProfunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Product (FromProfunctor p) (FromProfunctor q) a b -> Product (FromProfunctor p) (FromProfunctor q) a' b' Source #

BiInvariant ((,,,,,,) x1 x2 x3 x4 x5) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> (x1, x2, x3, x4, x5, a, b) -> (x1, x2, x3, x4, x5, a', b') Source #

(Functor f, Profunctor q) => BiInvariant (Tannen f q) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Tannen f q a b -> Tannen f q a' b' Source #

(Functor f, Coercible1 f, Bifunctor q) => BiInvariant (Tannen (FromFunctor f) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Tannen (FromFunctor f) (FromBifunctor q) a b -> Tannen (FromFunctor f) (FromBifunctor q) a' b' Source #

(Functor f, Profunctor q) => BiInvariant (Cayley f q) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Cayley f q a b -> Cayley f q a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Ran p q) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Ran p q a b -> Ran p q a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Procompose p q) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Procompose p q a b -> Procompose p q a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Rift p q) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Rift p q a b -> Rift p q a' b' Source #

(Bifunctor p, Functor f, Functor g) => BiInvariant (Biff (FromBifunctor p) f g) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Biff (FromBifunctor p) f g a b -> Biff (FromBifunctor p) f g a' b' Source #

(Profunctor p, Functor f, Functor g) => BiInvariant (Biff (FromProfunctor p) f g) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Biff (FromProfunctor p) f g a b -> Biff (FromProfunctor p) f g a' b' Source #

biinvIso :: BiInvariant p => Iso (->) a a' -> Iso (->) b b' -> Iso (->) (p a b) (p a' b') Source #

newtype FromProfunctor p a b Source #

Constructors

FromProfunctor 

Fields

Instances

Instances details
Profunctor p => BiInvariant (FromProfunctor p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> FromProfunctor p a b -> FromProfunctor p a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Sum (FromProfunctor p) (FromProfunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Sum (FromProfunctor p) (FromProfunctor q) a b -> Sum (FromProfunctor p) (FromProfunctor q) a' b' Source #

(Profunctor p, Profunctor q) => BiInvariant (Product (FromProfunctor p) (FromProfunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Product (FromProfunctor p) (FromProfunctor q) a b -> Product (FromProfunctor p) (FromProfunctor q) a' b' Source #

(Profunctor p, Functor f, Functor g) => BiInvariant (Biff (FromProfunctor p) f g) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Biff (FromProfunctor p) f g a b -> Biff (FromProfunctor p) f g a' b' Source #

newtype FromBifunctor p a b Source #

Constructors

FromBifunctor 

Fields

Instances

Instances details
Bifunctor p => BiInvariant (FromBifunctor p) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> FromBifunctor p a b -> FromBifunctor p a' b' Source #

(Bifunctor p, Bifunctor q) => BiInvariant (Sum (FromBifunctor p) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Sum (FromBifunctor p) (FromBifunctor q) a b -> Sum (FromBifunctor p) (FromBifunctor q) a' b' Source #

(Bifunctor p, Bifunctor q) => BiInvariant (Product (FromBifunctor p) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Product (FromBifunctor p) (FromBifunctor q) a b -> Product (FromBifunctor p) (FromBifunctor q) a' b' Source #

(Functor f, Coercible1 f, Bifunctor q) => BiInvariant (Tannen (FromFunctor f) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Tannen (FromFunctor f) (FromBifunctor q) a b -> Tannen (FromFunctor f) (FromBifunctor q) a' b' Source #

(Bifunctor p, Functor f, Functor g) => BiInvariant (Biff (FromBifunctor p) f g) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Biff (FromBifunctor p) f g a b -> Biff (FromBifunctor p) f g a' b' Source #

newtype FromContra f a Source #

Constructors

FromContra 

Fields

Instances

Instances details
Contravariant f => Contravariant (FromContra f) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

contramap :: (a -> b) -> FromContra f b -> FromContra f a #

(>$) :: b -> FromContra f b -> FromContra f a #

Functor f => BiInvariant (Joker (FromContra f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Joker (FromContra f) a b -> Joker (FromContra f) a' b' Source #

Contravariant f => BiInvariant (Clown (FromContra f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Clown (FromContra f) a b -> Clown (FromContra f) a' b' Source #

newtype FromFunctor f a Source #

Constructors

FromFunctor 

Fields

Instances

Instances details
Functor f => Functor (FromFunctor f) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

fmap :: (a -> b) -> FromFunctor f a -> FromFunctor f b #

(<$) :: a -> FromFunctor f b -> FromFunctor f a #

Functor f => BiInvariant (Star (FromFunctor f)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Star (FromFunctor f) a b -> Star (FromFunctor f) a' b' Source #

Functor f => BiInvariant (Joker (FromFunctor f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Joker (FromFunctor f) a b -> Joker (FromFunctor f) a' b' Source #

Functor f => BiInvariant (Clown (FromFunctor f) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Clown (FromFunctor f) a b -> Clown (FromFunctor f) a' b' Source #

(Functor f, Coercible1 f, Bifunctor q) => BiInvariant (Tannen (FromFunctor f) (FromBifunctor q)) Source # 
Instance details

Defined in Data.Bifunctor.BiInvariant

Methods

biinvmap :: (a' -> a) -> (a -> a') -> (b' -> b) -> (b -> b') -> Tannen (FromFunctor f) (FromBifunctor q) a b -> Tannen (FromFunctor f) (FromBifunctor q) a' b' Source #

type Coercible1 f = forall a b. Coercible a b => Coercible (f a) (f b) :: Constraint Source #

type Coercible2 f = forall a b c d. (Coercible a b, Coercible c d) => Coercible (f a c) (f b d) :: Constraint Source #