module Data.Bifunctor.Module
(
LeftModule (..),
RightModule (..),
Bimodule,
LeftCoModule (..),
RightCoModule (..),
CoBimodule,
)
where
import Control.Applicative (Applicative)
import Control.Arrow (Arrow, ArrowChoice, ArrowLoop, Kleisli (..))
import Control.Category.Tensor (GBifunctor (..))
import Control.Comonad (Cokleisli, Comonad)
import Control.Monad (Functor, Monad)
import Control.Monad.Fix (MonadFix)
import Data.Bifunctor (Bifunctor)
import Data.Bifunctor.Clown (Clown)
import Data.Bifunctor.Joker (Joker)
import Data.Bifunctor.Product (Product)
import Data.Bifunctor.Sum (Sum)
import Data.Bifunctor.Tannen (Tannen)
import Data.Either (Either (..))
import Data.Functor.Const (Const (..))
import Data.Functor.Contravariant (Contravariant, Op (..))
import Data.Kind (Type)
import Data.Monoid (Monoid)
import Data.Profunctor
import Data.Profunctor.Cayley (Cayley)
import Data.Profunctor.Choice (CopastroSum, CotambaraSum, PastroSum, TambaraSum)
import Data.Profunctor.Closed (Closure)
import Data.Profunctor.Composition (Procompose)
import Data.Profunctor.Mapping (CofreeMapping, FreeMapping)
import Data.Profunctor.Rep (Corepresentable)
import Data.Profunctor.Strong (Copastro, Pastro, Tambara)
import Data.Profunctor.Traversing (CofreeTraversing, FreeTraversing)
import Data.Profunctor.Yoneda (Coyoneda, Yoneda)
import Data.Semigroup (Arg)
import Data.Tagged (Tagged)
import Data.These (These (This, That))
import Data.Traversable (Traversable)
import Data.Tuple (fst, snd)
import GHC.Generics (K1 (..))
newtype FromProfunctor p a b = FromProfunctor (p a b)
deriving newtype (forall a b. a -> FromProfunctor p a b -> FromProfunctor p a a
forall a b.
(a -> b) -> FromProfunctor p a a -> FromProfunctor p a b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
forall (p :: * -> * -> *) a a b.
Functor (p a) =>
a -> FromProfunctor p a b -> FromProfunctor p a a
forall (p :: * -> * -> *) a a b.
Functor (p a) =>
(a -> b) -> FromProfunctor p a a -> FromProfunctor p a b
<$ :: forall a b. a -> FromProfunctor p a b -> FromProfunctor p a a
$c<$ :: forall (p :: * -> * -> *) a a b.
Functor (p a) =>
a -> FromProfunctor p a b -> FromProfunctor p a a
fmap :: forall a b.
(a -> b) -> FromProfunctor p a a -> FromProfunctor p a b
$cfmap :: forall (p :: * -> * -> *) a a b.
Functor (p a) =>
(a -> b) -> FromProfunctor p a a -> FromProfunctor p a b
Functor, forall a b c.
(a -> b) -> FromProfunctor p b c -> FromProfunctor p a c
forall b c a.
(b -> c) -> FromProfunctor p a b -> FromProfunctor p a c
forall a b c d.
(a -> b)
-> (c -> d) -> FromProfunctor p b c -> FromProfunctor p a d
forall a b c (q :: * -> * -> *).
Coercible b a =>
FromProfunctor p b c -> q a b -> FromProfunctor p a c
forall a b c (q :: * -> * -> *).
Coercible c b =>
q b c -> FromProfunctor p a b -> FromProfunctor p a c
forall (p :: * -> * -> *) a b c.
Profunctor p =>
(a -> b) -> FromProfunctor p b c -> FromProfunctor p a c
forall (p :: * -> * -> *) b c a.
Profunctor p =>
(b -> c) -> FromProfunctor p a b -> FromProfunctor p a c
forall (p :: * -> * -> *) a b c d.
Profunctor p =>
(a -> b)
-> (c -> d) -> FromProfunctor p b c -> FromProfunctor p a d
forall (p :: * -> * -> *) a b c (q :: * -> * -> *).
(Profunctor p, Coercible b a) =>
FromProfunctor p b c -> q a b -> FromProfunctor p a c
forall (p :: * -> * -> *) a b c (q :: * -> * -> *).
(Profunctor p, Coercible c b) =>
q b c -> FromProfunctor p a b -> FromProfunctor p a c
forall (p :: * -> * -> *).
(forall a b c d. (a -> b) -> (c -> d) -> p b c -> p a d)
-> (forall a b c. (a -> b) -> p b c -> p a c)
-> (forall b c a. (b -> c) -> p a b -> p a c)
-> (forall a b c (q :: * -> * -> *).
Coercible c b =>
q b c -> p a b -> p a c)
-> (forall a b c (q :: * -> * -> *).
Coercible b a =>
p b c -> q a b -> p a c)
-> Profunctor p
.# :: forall a b c (q :: * -> * -> *).
Coercible b a =>
FromProfunctor p b c -> q a b -> FromProfunctor p a c
$c.# :: forall (p :: * -> * -> *) a b c (q :: * -> * -> *).
(Profunctor p, Coercible b a) =>
FromProfunctor p b c -> q a b -> FromProfunctor p a c
#. :: forall a b c (q :: * -> * -> *).
Coercible c b =>
q b c -> FromProfunctor p a b -> FromProfunctor p a c
$c#. :: forall (p :: * -> * -> *) a b c (q :: * -> * -> *).
(Profunctor p, Coercible c b) =>
q b c -> FromProfunctor p a b -> FromProfunctor p a c
rmap :: forall b c a.
(b -> c) -> FromProfunctor p a b -> FromProfunctor p a c
$crmap :: forall (p :: * -> * -> *) b c a.
Profunctor p =>
(b -> c) -> FromProfunctor p a b -> FromProfunctor p a c
lmap :: forall a b c.
(a -> b) -> FromProfunctor p b c -> FromProfunctor p a c
$clmap :: forall (p :: * -> * -> *) a b c.
Profunctor p =>
(a -> b) -> FromProfunctor p b c -> FromProfunctor p a c
dimap :: forall a b c d.
(a -> b)
-> (c -> d) -> FromProfunctor p b c -> FromProfunctor p a d
$cdimap :: forall (p :: * -> * -> *) a b c d.
Profunctor p =>
(a -> b)
-> (c -> d) -> FromProfunctor p b c -> FromProfunctor p a d
Profunctor, forall a b c.
FromProfunctor p a b -> FromProfunctor p (a, c) (b, c)
forall a b c.
FromProfunctor p a b -> FromProfunctor p (c, a) (c, b)
forall {p :: * -> * -> *}.
Strong p =>
Profunctor (FromProfunctor p)
forall (p :: * -> * -> *) a b c.
Strong p =>
FromProfunctor p a b -> FromProfunctor p (a, c) (b, c)
forall (p :: * -> * -> *) a b c.
Strong p =>
FromProfunctor p a b -> FromProfunctor p (c, a) (c, b)
forall (p :: * -> * -> *).
Profunctor p
-> (forall a b c. p a b -> p (a, c) (b, c))
-> (forall a b c. p a b -> p (c, a) (c, b))
-> Strong p
second' :: forall a b c.
FromProfunctor p a b -> FromProfunctor p (c, a) (c, b)
$csecond' :: forall (p :: * -> * -> *) a b c.
Strong p =>
FromProfunctor p a b -> FromProfunctor p (c, a) (c, b)
first' :: forall a b c.
FromProfunctor p a b -> FromProfunctor p (a, c) (b, c)
$cfirst' :: forall (p :: * -> * -> *) a b c.
Strong p =>
FromProfunctor p a b -> FromProfunctor p (a, c) (b, c)
Strong, forall a b c.
FromProfunctor p a b -> FromProfunctor p (Either a c) (Either b c)
forall a b c.
FromProfunctor p a b -> FromProfunctor p (Either c a) (Either c b)
forall {p :: * -> * -> *}.
Choice p =>
Profunctor (FromProfunctor p)
forall (p :: * -> * -> *) a b c.
Choice p =>
FromProfunctor p a b -> FromProfunctor p (Either a c) (Either b c)
forall (p :: * -> * -> *) a b c.
Choice p =>
FromProfunctor p a b -> FromProfunctor p (Either c a) (Either c b)
forall (p :: * -> * -> *).
Profunctor p
-> (forall a b c. p a b -> p (Either a c) (Either b c))
-> (forall a b c. p a b -> p (Either c a) (Either c b))
-> Choice p
right' :: forall a b c.
FromProfunctor p a b -> FromProfunctor p (Either c a) (Either c b)
$cright' :: forall (p :: * -> * -> *) a b c.
Choice p =>
FromProfunctor p a b -> FromProfunctor p (Either c a) (Either c b)
left' :: forall a b c.
FromProfunctor p a b -> FromProfunctor p (Either a c) (Either b c)
$cleft' :: forall (p :: * -> * -> *) a b c.
Choice p =>
FromProfunctor p a b -> FromProfunctor p (Either a c) (Either b c)
Choice, forall d a b.
FromProfunctor p (d, a) (d, b) -> FromProfunctor p a b
forall a d b.
FromProfunctor p (a, d) (b, d) -> FromProfunctor p a b
forall {p :: * -> * -> *}.
Costrong p =>
Profunctor (FromProfunctor p)
forall (p :: * -> * -> *) d a b.
Costrong p =>
FromProfunctor p (d, a) (d, b) -> FromProfunctor p a b
forall (p :: * -> * -> *) a d b.
Costrong p =>
FromProfunctor p (a, d) (b, d) -> FromProfunctor p a b
forall (p :: * -> * -> *).
Profunctor p
-> (forall a d b. p (a, d) (b, d) -> p a b)
-> (forall d a b. p (d, a) (d, b) -> p a b)
-> Costrong p
unsecond :: forall d a b.
FromProfunctor p (d, a) (d, b) -> FromProfunctor p a b
$cunsecond :: forall (p :: * -> * -> *) d a b.
Costrong p =>
FromProfunctor p (d, a) (d, b) -> FromProfunctor p a b
unfirst :: forall a d b.
FromProfunctor p (a, d) (b, d) -> FromProfunctor p a b
$cunfirst :: forall (p :: * -> * -> *) a d b.
Costrong p =>
FromProfunctor p (a, d) (b, d) -> FromProfunctor p a b
Costrong, forall d a b.
FromProfunctor p (Either d a) (Either d b) -> FromProfunctor p a b
forall a d b.
FromProfunctor p (Either a d) (Either b d) -> FromProfunctor p a b
forall {p :: * -> * -> *}.
Cochoice p =>
Profunctor (FromProfunctor p)
forall (p :: * -> * -> *) d a b.
Cochoice p =>
FromProfunctor p (Either d a) (Either d b) -> FromProfunctor p a b
forall (p :: * -> * -> *) a d b.
Cochoice p =>
FromProfunctor p (Either a d) (Either b d) -> FromProfunctor p a b
forall (p :: * -> * -> *).
Profunctor p
-> (forall a d b. p (Either a d) (Either b d) -> p a b)
-> (forall d a b. p (Either d a) (Either d b) -> p a b)
-> Cochoice p
unright :: forall d a b.
FromProfunctor p (Either d a) (Either d b) -> FromProfunctor p a b
$cunright :: forall (p :: * -> * -> *) d a b.
Cochoice p =>
FromProfunctor p (Either d a) (Either d b) -> FromProfunctor p a b
unleft :: forall a d b.
FromProfunctor p (Either a d) (Either b d) -> FromProfunctor p a b
$cunleft :: forall (p :: * -> * -> *) a d b.
Cochoice p =>
FromProfunctor p (Either a d) (Either b d) -> FromProfunctor p a b
Cochoice)
newtype FromBifunctor p a b = FromBifunctor (p a b)
deriving newtype (forall a b. a -> FromBifunctor p a b -> FromBifunctor p a a
forall a b. (a -> b) -> FromBifunctor p a a -> FromBifunctor p a b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
forall (p :: * -> * -> *) a a b.
Functor (p a) =>
a -> FromBifunctor p a b -> FromBifunctor p a a
forall (p :: * -> * -> *) a a b.
Functor (p a) =>
(a -> b) -> FromBifunctor p a a -> FromBifunctor p a b
<$ :: forall a b. a -> FromBifunctor p a b -> FromBifunctor p a a
$c<$ :: forall (p :: * -> * -> *) a a b.
Functor (p a) =>
a -> FromBifunctor p a b -> FromBifunctor p a a
fmap :: forall a b. (a -> b) -> FromBifunctor p a a -> FromBifunctor p a b
$cfmap :: forall (p :: * -> * -> *) a a b.
Functor (p a) =>
(a -> b) -> FromBifunctor p a a -> FromBifunctor p a b
Functor, forall a b c.
(a -> b) -> FromBifunctor p a c -> FromBifunctor p b c
forall b c a.
(b -> c) -> FromBifunctor p a b -> FromBifunctor p a c
forall a b c d.
(a -> b) -> (c -> d) -> FromBifunctor p a c -> FromBifunctor p b d
forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> FromBifunctor p a c -> FromBifunctor p b c
forall (p :: * -> * -> *) b c a.
Bifunctor p =>
(b -> c) -> FromBifunctor p a b -> FromBifunctor p a c
forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> FromBifunctor p a c -> FromBifunctor p b d
forall (p :: * -> * -> *).
(forall a b c d. (a -> b) -> (c -> d) -> p a c -> p b d)
-> (forall a b c. (a -> b) -> p a c -> p b c)
-> (forall b c a. (b -> c) -> p a b -> p a c)
-> Bifunctor p
second :: forall b c a.
(b -> c) -> FromBifunctor p a b -> FromBifunctor p a c
$csecond :: forall (p :: * -> * -> *) b c a.
Bifunctor p =>
(b -> c) -> FromBifunctor p a b -> FromBifunctor p a c
first :: forall a b c.
(a -> b) -> FromBifunctor p a c -> FromBifunctor p b c
$cfirst :: forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> FromBifunctor p a c -> FromBifunctor p b c
bimap :: forall a b c d.
(a -> b) -> (c -> d) -> FromBifunctor p a c -> FromBifunctor p b d
$cbimap :: forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> FromBifunctor p a c -> FromBifunctor p b d
Bifunctor)
class LeftModule cat t1 t2 p where
lstrength :: cat (p a b) (p (t1 a x) (t2 b x))
instance Strong p => LeftModule (->) (,) (,) (FromProfunctor p) where
lstrength :: FromProfunctor p a b -> FromProfunctor p (a, x) (b, x)
lstrength :: forall a b x.
FromProfunctor p a b -> FromProfunctor p (a, x) (b, x)
lstrength = forall (p :: * -> * -> *) a b c.
Strong p =>
p a b -> p (a, c) (b, c)
first'
instance Choice p => LeftModule (->) Either Either (FromProfunctor p) where
lstrength :: FromProfunctor p a b -> FromProfunctor p (Either a x) (Either b x)
lstrength :: forall a b x.
FromProfunctor p a b -> FromProfunctor p (Either a x) (Either b x)
lstrength = forall (p :: * -> * -> *) a b c.
Choice p =>
p a b -> p (Either a c) (Either b c)
left'
instance Bifunctor p => LeftModule (->) Either Either (FromBifunctor p) where
lstrength :: FromBifunctor p a b -> FromBifunctor p (Either a x) (Either b x)
lstrength :: forall a b x.
FromBifunctor p a b -> FromBifunctor p (Either a x) (Either b x)
lstrength = forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. a -> Either a b
Left forall a b. a -> Either a b
Left
instance Bifunctor p => LeftModule (->) These These (FromBifunctor p) where
lstrength :: FromBifunctor p a b -> FromBifunctor p (These a x) (These b x)
lstrength :: forall a b x.
FromBifunctor p a b -> FromBifunctor p (These a x) (These b x)
lstrength = forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. a -> These a b
This forall a b. a -> These a b
This
instance Bifunctor p => LeftModule Op (,) (,) (FromBifunctor p) where
lstrength :: Op (FromBifunctor p a b) (FromBifunctor p (a, x) (b, x))
lstrength :: forall a b x.
Op (FromBifunctor p a b) (FromBifunctor p (a, x) (b, x))
lstrength = forall a b. (b -> a) -> Op a b
Op (forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. (a, b) -> a
fst forall a b. (a, b) -> a
fst)
deriving via (FromProfunctor (Kleisli m)) instance Monad m => LeftModule (->) (,) (,) (Kleisli m)
deriving via (FromProfunctor (Pastro p)) instance LeftModule (->) (,) (,) (Pastro p)
deriving via (FromProfunctor (Tambara p)) instance Profunctor p => LeftModule (->) (,) (,) (Tambara p)
deriving via (FromProfunctor (Closure p)) instance Strong p => LeftModule (->) (,) (,) (Closure p)
deriving via (FromProfunctor (FreeTraversing p)) instance LeftModule (->) (,) (,) (FreeTraversing p)
deriving via (FromProfunctor (CofreeTraversing p)) instance Profunctor p => LeftModule (->) (,) (,) (CofreeTraversing p)
deriving via (FromProfunctor (FreeMapping p)) instance LeftModule (->) (,) (,) (FreeMapping p)
deriving via (FromProfunctor (CofreeMapping p)) instance Profunctor p => LeftModule (->) (,) (,) (CofreeMapping p)
deriving via (FromProfunctor (Coyoneda p)) instance Strong p => LeftModule (->) (,) (,) (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Strong p => LeftModule (->) (,) (,) (Yoneda p)
deriving via (FromProfunctor (->)) instance LeftModule (->) (,) (,) (->)
deriving via (FromProfunctor (Forget r)) instance LeftModule (->) (,) (,) (Forget r)
deriving via (FromProfunctor (Star m)) instance Functor m => LeftModule (->) (,) (,) (Star m)
deriving via (FromProfunctor (Clown f)) instance Contravariant f => LeftModule (->) (,) (,) (Clown f)
deriving via (FromProfunctor (WrappedArrow p)) instance Arrow p => LeftModule (->) (,) (,) (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Strong p, Strong q) => LeftModule (->) (,) (,) (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Strong p, Strong q) => LeftModule (->) (,) (,) (Product p q)
deriving via (FromProfunctor (Tannen f q)) instance (Functor f, Strong q) => LeftModule (->) (,) (,) (Tannen f q)
deriving via (FromProfunctor (Procompose p q)) instance (Strong p, Strong q) => LeftModule (->) (,) (,) (Procompose p q)
deriving via (FromProfunctor (Cayley f q)) instance (Functor f, Strong q) => LeftModule (->) (,) (,) (Cayley f q)
deriving via (FromProfunctor (Kleisli m)) instance Monad m => LeftModule (->) Either Either (Kleisli m)
deriving via (FromProfunctor Tagged) instance LeftModule (->) Either Either Tagged
deriving via (FromProfunctor (Tambara p)) instance (Choice p) => LeftModule (->) Either Either (Tambara p)
deriving via (FromProfunctor (PastroSum p)) instance LeftModule (->) Either Either (PastroSum p)
deriving via (FromProfunctor (TambaraSum p)) instance Profunctor p => LeftModule (->) Either Either (TambaraSum p)
deriving via (FromProfunctor (FreeTraversing p)) instance LeftModule (->) Either Either ( FreeTraversing p)
deriving via (FromProfunctor (CofreeTraversing p)) instance Profunctor p => LeftModule (->) Either Either (CofreeTraversing p)
deriving via (FromProfunctor (FreeMapping p )) instance LeftModule (->) Either Either (FreeMapping p)
deriving via (FromProfunctor (CofreeMapping p)) instance Profunctor p => LeftModule (->) Either Either (CofreeMapping p)
deriving via (FromProfunctor (Coyoneda p)) instance Choice p => LeftModule (->) Either Either (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Choice p => LeftModule (->) Either Either (Yoneda p)
deriving via (FromProfunctor (->)) instance LeftModule (->) Either Either (->)
deriving via (FromProfunctor (Cokleisli w)) instance Comonad w => LeftModule (->) Either Either (Cokleisli w)
deriving via (FromProfunctor (Forget r)) instance Monoid r => LeftModule (->) Either Either (Forget r)
deriving via (FromProfunctor (Star f)) instance Applicative f => LeftModule (->) Either Either (Star f)
deriving via (FromProfunctor (Joker f)) instance Functor f => LeftModule (->) Either Either (Joker f)
deriving via (FromProfunctor (WrappedArrow p)) instance ArrowChoice p => LeftModule (->) Either Either (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Choice p, Choice q) => LeftModule (->) Either Either (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Choice p, Choice q) => LeftModule (->) Either Either (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Choice p) => LeftModule (->) Either Either (Tannen f p)
deriving via (FromProfunctor (Procompose p q)) instance (Choice p, Choice q) => LeftModule (->) Either Either (Procompose p q)
deriving via (FromProfunctor (Cayley f q)) instance (Functor f, Choice q) => LeftModule (->) Either Either (Cayley f q)
deriving via (FromBifunctor Arg) instance LeftModule (->) Either Either Arg
deriving via (FromBifunctor Const) instance LeftModule (->) Either Either Const
deriving via (FromBifunctor Either) instance LeftModule (->) Either Either Either
deriving via (FromBifunctor These) instance LeftModule (->) Either Either These
deriving via (FromBifunctor (K1 i)) instance LeftModule (->) Either Either (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance LeftModule (->) Either Either (,)
deriving via (FromBifunctor ((,,) x1)) instance LeftModule (->) Either Either ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance LeftModule (->) Either Either ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance LeftModule (->) Either Either ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance LeftModule (->) Either Either ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance LeftModule (->) Either Either ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance LeftModule (->) These These Arg
deriving via (FromBifunctor Const) instance LeftModule (->) These These Const
deriving via (FromBifunctor Either) instance LeftModule (->) These These Either
deriving via (FromBifunctor These) instance LeftModule (->) These These These
deriving via (FromBifunctor (K1 i)) instance LeftModule (->) These These (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance LeftModule (->) These These (,)
deriving via (FromBifunctor ((,,) x1)) instance LeftModule (->) These These ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance LeftModule (->) These These ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance LeftModule (->) These These ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance LeftModule (->) These These ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance LeftModule (->) These These ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance LeftModule Op (,) (,) Arg
deriving via (FromBifunctor Const) instance LeftModule Op (,) (,) Const
deriving via (FromBifunctor Either) instance LeftModule Op (,) (,) Either
deriving via (FromBifunctor These) instance LeftModule Op (,) (,) These
deriving via (FromBifunctor (K1 i)) instance LeftModule Op (,) (,) (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance LeftModule Op (,) (,) (,)
deriving via (FromBifunctor ((,,) x1)) instance LeftModule Op (,) (,) ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance LeftModule Op (,) (,) ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance LeftModule Op (,) (,) ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance LeftModule Op (,) (,) ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance LeftModule Op (,) (,) ((,,,,,,) x1 x2 x3 x4 x5)
class RightModule cat t1 t2 f where
rstrength :: cat (f a b) (f (x `t1` a) (x `t2` b))
instance Strong p => RightModule (->) (,) (,) (FromProfunctor p) where
rstrength :: FromProfunctor p a b -> FromProfunctor p (c, a) (c, b)
rstrength :: forall a b c.
FromProfunctor p a b -> FromProfunctor p (c, a) (c, b)
rstrength = forall (p :: * -> * -> *) a b c.
Strong p =>
p a b -> p (c, a) (c, b)
second'
instance Choice p => RightModule (->) Either Either (FromProfunctor p) where
rstrength :: FromProfunctor p a b -> FromProfunctor p (Either c a) (Either c b)
rstrength :: forall a b c.
FromProfunctor p a b -> FromProfunctor p (Either c a) (Either c b)
rstrength = forall (p :: * -> * -> *) a b c.
Choice p =>
p a b -> p (Either c a) (Either c b)
right'
instance Bifunctor p => RightModule (->) Either Either (FromBifunctor p) where
rstrength :: FromBifunctor p a b -> FromBifunctor p (Either x a) (Either x b)
rstrength :: forall a b x.
FromBifunctor p a b -> FromBifunctor p (Either x a) (Either x b)
rstrength = forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. b -> Either a b
Right forall a b. b -> Either a b
Right
instance Bifunctor p => RightModule (->) These These (FromBifunctor p) where
rstrength :: FromBifunctor p a b -> FromBifunctor p (These x a) (These x b)
rstrength :: forall a b x.
FromBifunctor p a b -> FromBifunctor p (These x a) (These x b)
rstrength = forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. b -> These a b
That forall a b. b -> These a b
That
instance Bifunctor p => RightModule Op (,) (,) (FromBifunctor p) where
rstrength :: Op (FromBifunctor p a b) (FromBifunctor p (x, a) (x, b))
rstrength :: forall a b x.
Op (FromBifunctor p a b) (FromBifunctor p (x, a) (x, b))
rstrength = forall a b. (b -> a) -> Op a b
Op (forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. (a, b) -> b
snd forall a b. (a, b) -> b
snd)
deriving via (FromProfunctor (Kleisli m)) instance Monad m => RightModule (->) (,) (,) (Kleisli m)
deriving via (FromProfunctor (Pastro p)) instance RightModule (->) (,) (,) (Pastro p)
deriving via (FromProfunctor (Tambara p)) instance Profunctor p => RightModule (->) (,) (,) (Tambara p)
deriving via (FromProfunctor (Closure p)) instance Strong p => RightModule (->) (,) (,) (Closure p)
deriving via (FromProfunctor (FreeTraversing p)) instance RightModule (->) (,) (,) (FreeTraversing p)
deriving via (FromProfunctor (CofreeTraversing p)) instance Profunctor p => RightModule (->) (,) (,) (CofreeTraversing p)
deriving via (FromProfunctor (FreeMapping p)) instance RightModule (->) (,) (,) (FreeMapping p)
deriving via (FromProfunctor (CofreeMapping p)) instance Profunctor p => RightModule (->) (,) (,) (CofreeMapping p)
deriving via (FromProfunctor (Coyoneda p)) instance Strong p => RightModule (->) (,) (,) (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Strong p => RightModule (->) (,) (,) (Yoneda p)
deriving via (FromProfunctor (->)) instance RightModule (->) (,) (,) (->)
deriving via (FromProfunctor (Forget r)) instance RightModule (->) (,) (,) (Forget r)
deriving via (FromProfunctor (Star m)) instance Functor m => RightModule (->) (,) (,) (Star m)
deriving via (FromProfunctor (Clown f)) instance Contravariant f => RightModule (->) (,) (,) (Clown f)
deriving via (FromProfunctor (WrappedArrow p)) instance Arrow p => RightModule (->) (,) (,) (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Strong p, Strong q) => RightModule (->) (,) (,) (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Strong p, Strong q) => RightModule (->) (,) (,) (Product p q)
deriving via (FromProfunctor (Tannen f q)) instance (Functor f, Strong q) => RightModule (->) (,) (,) (Tannen f q)
deriving via (FromProfunctor (Procompose p q)) instance (Strong p, Strong q) => RightModule (->) (,) (,) (Procompose p q)
deriving via (FromProfunctor (Cayley f q)) instance (Functor f, Strong q) => RightModule (->) (,) (,) (Cayley f q)
deriving via (FromProfunctor (Kleisli m)) instance Monad m => RightModule (->) Either Either (Kleisli m)
deriving via (FromProfunctor Tagged) instance RightModule (->) Either Either Tagged
deriving via (FromProfunctor (Tambara p)) instance (Choice p) => RightModule (->) Either Either (Tambara p)
deriving via (FromProfunctor (PastroSum p)) instance RightModule (->) Either Either (PastroSum p)
deriving via (FromProfunctor (TambaraSum p)) instance Profunctor p => RightModule (->) Either Either (TambaraSum p)
deriving via (FromProfunctor (FreeTraversing p)) instance RightModule (->) Either Either ( FreeTraversing p)
deriving via (FromProfunctor (CofreeTraversing p)) instance Profunctor p => RightModule (->) Either Either (CofreeTraversing p)
deriving via (FromProfunctor (FreeMapping p )) instance RightModule (->) Either Either (FreeMapping p)
deriving via (FromProfunctor (CofreeMapping p)) instance Profunctor p => RightModule (->) Either Either (CofreeMapping p)
deriving via (FromProfunctor (Coyoneda p)) instance Choice p => RightModule (->) Either Either (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Choice p => RightModule (->) Either Either (Yoneda p)
deriving via (FromProfunctor (->)) instance RightModule (->) Either Either (->)
deriving via (FromProfunctor (Cokleisli w)) instance Comonad w => RightModule (->) Either Either (Cokleisli w)
deriving via (FromProfunctor (Forget r)) instance Monoid r => RightModule (->) Either Either (Forget r)
deriving via (FromProfunctor (Star f)) instance Applicative f => RightModule (->) Either Either (Star f)
deriving via (FromProfunctor (Joker f)) instance Functor f => RightModule (->) Either Either (Joker f)
deriving via (FromProfunctor (WrappedArrow p)) instance ArrowChoice p => RightModule (->) Either Either (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Choice p, Choice q) => RightModule (->) Either Either (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Choice p, Choice q) => RightModule (->) Either Either (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Choice p) => RightModule (->) Either Either (Tannen f p)
deriving via (FromProfunctor (Procompose p q)) instance (Choice p, Choice q) => RightModule (->) Either Either (Procompose p q)
deriving via (FromProfunctor (Cayley f q)) instance (Functor f, Choice q) => RightModule (->) Either Either (Cayley f q)
deriving via (FromBifunctor Arg) instance RightModule (->) Either Either Arg
deriving via (FromBifunctor Const) instance RightModule (->) Either Either Const
deriving via (FromBifunctor Either) instance RightModule (->) Either Either Either
deriving via (FromBifunctor These) instance RightModule (->) Either Either These
deriving via (FromBifunctor (K1 i)) instance RightModule (->) Either Either (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance RightModule (->) Either Either (,)
deriving via (FromBifunctor ((,,) x1)) instance RightModule (->) Either Either ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance RightModule (->) Either Either ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance RightModule (->) Either Either ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance RightModule (->) Either Either ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance RightModule (->) Either Either ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance RightModule (->) These These Arg
deriving via (FromBifunctor Const) instance RightModule (->) These These Const
deriving via (FromBifunctor Either) instance RightModule (->) These These Either
deriving via (FromBifunctor These) instance RightModule (->) These These These
deriving via (FromBifunctor (K1 i)) instance RightModule (->) These These (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance RightModule (->) These These (,)
deriving via (FromBifunctor ((,,) x1)) instance RightModule (->) These These ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance RightModule (->) These These ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance RightModule (->) These These ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance RightModule (->) These These ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance RightModule (->) These These ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance RightModule Op (,) (,) Arg
deriving via (FromBifunctor Const) instance RightModule Op (,) (,) Const
deriving via (FromBifunctor Either) instance RightModule Op (,) (,) Either
deriving via (FromBifunctor These) instance RightModule Op (,) (,) These
deriving via (FromBifunctor (K1 i)) instance RightModule Op (,) (,) (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance RightModule Op (,) (,) (,)
deriving via (FromBifunctor ((,,) x1)) instance RightModule Op (,) (,) ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance RightModule Op (,) (,) ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance RightModule Op (,) (,) ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance RightModule Op (,) (,) ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance RightModule Op (,) (,) ((,,,,,,) x1 x2 x3 x4 x5)
class (LeftModule cat t1 t2 f, RightModule cat t1 t2 f) => Bimodule cat t1 t2 f
instance Strong p => Bimodule (->) (,) (,) (FromProfunctor p)
instance Choice p => Bimodule (->) Either Either (FromProfunctor p)
instance Bifunctor p => Bimodule (->) Either Either (FromBifunctor p)
instance Bifunctor p => Bimodule (->) These These (FromBifunctor p)
instance Bifunctor p => Bimodule Op (,) (,) (FromBifunctor p)
deriving via (FromProfunctor (Kleisli m)) instance Monad m => Bimodule (->) (,) (,) (Kleisli m)
deriving via (FromProfunctor (Pastro p)) instance Bimodule (->) (,) (,) (Pastro p)
deriving via (FromProfunctor (Tambara p)) instance Profunctor p => Bimodule (->) (,) (,) (Tambara p)
deriving via (FromProfunctor (Closure p)) instance Strong p => Bimodule (->) (,) (,) (Closure p)
deriving via (FromProfunctor (FreeTraversing p)) instance Bimodule (->) (,) (,) (FreeTraversing p)
deriving via (FromProfunctor (CofreeTraversing p)) instance Profunctor p => Bimodule (->) (,) (,) (CofreeTraversing p)
deriving via (FromProfunctor (FreeMapping p)) instance Bimodule (->) (,) (,) (FreeMapping p)
deriving via (FromProfunctor (CofreeMapping p)) instance Profunctor p => Bimodule (->) (,) (,) (CofreeMapping p)
deriving via (FromProfunctor (Coyoneda p)) instance Strong p => Bimodule (->) (,) (,) (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Strong p => Bimodule (->) (,) (,) (Yoneda p)
deriving via (FromProfunctor (->)) instance Bimodule (->) (,) (,) (->)
deriving via (FromProfunctor (Forget r)) instance Bimodule (->) (,) (,) (Forget r)
deriving via (FromProfunctor (Star m)) instance Functor m => Bimodule (->) (,) (,) (Star m)
deriving via (FromProfunctor (Clown f)) instance Contravariant f => Bimodule (->) (,) (,) (Clown f)
deriving via (FromProfunctor (WrappedArrow p)) instance Arrow p => Bimodule (->) (,) (,) (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Strong p, Strong q) => Bimodule (->) (,) (,) (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Strong p, Strong q) => Bimodule (->) (,) (,) (Product p q)
deriving via (FromProfunctor (Tannen f q)) instance (Functor f, Strong q) => Bimodule (->) (,) (,) (Tannen f q)
deriving via (FromProfunctor (Procompose p q)) instance (Strong p, Strong q) => Bimodule (->) (,) (,) (Procompose p q)
deriving via (FromProfunctor (Cayley f q)) instance (Functor f, Strong q) => Bimodule (->) (,) (,) (Cayley f q)
deriving via (FromProfunctor (Kleisli m)) instance Monad m => Bimodule (->) Either Either (Kleisli m)
deriving via (FromProfunctor Tagged) instance Bimodule (->) Either Either Tagged
deriving via (FromProfunctor (Tambara p)) instance (Choice p) => Bimodule (->) Either Either (Tambara p)
deriving via (FromProfunctor (PastroSum p)) instance Bimodule (->) Either Either (PastroSum p)
deriving via (FromProfunctor (TambaraSum p)) instance Profunctor p => Bimodule (->) Either Either (TambaraSum p)
deriving via (FromProfunctor (FreeTraversing p)) instance Bimodule (->) Either Either ( FreeTraversing p)
deriving via (FromProfunctor (CofreeTraversing p)) instance Profunctor p => Bimodule (->) Either Either (CofreeTraversing p)
deriving via (FromProfunctor (FreeMapping p )) instance Bimodule (->) Either Either (FreeMapping p)
deriving via (FromProfunctor (CofreeMapping p)) instance Profunctor p => Bimodule (->) Either Either (CofreeMapping p)
deriving via (FromProfunctor (Coyoneda p)) instance Choice p => Bimodule (->) Either Either (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Choice p => Bimodule (->) Either Either (Yoneda p)
deriving via (FromProfunctor (->)) instance Bimodule (->) Either Either (->)
deriving via (FromProfunctor (Cokleisli w)) instance Comonad w => Bimodule (->) Either Either (Cokleisli w)
deriving via (FromProfunctor (Forget r)) instance Monoid r => Bimodule (->) Either Either (Forget r)
deriving via (FromProfunctor (Star f)) instance Applicative f => Bimodule (->) Either Either (Star f)
deriving via (FromProfunctor (Joker f)) instance Functor f => Bimodule (->) Either Either (Joker f)
deriving via (FromProfunctor (WrappedArrow p)) instance ArrowChoice p => Bimodule (->) Either Either (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Choice p, Choice q) => Bimodule (->) Either Either (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Choice p, Choice q) => Bimodule (->) Either Either (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Choice p) => Bimodule (->) Either Either (Tannen f p)
deriving via (FromProfunctor (Procompose p q)) instance (Choice p, Choice q) => Bimodule (->) Either Either (Procompose p q)
deriving via (FromProfunctor (Cayley f q)) instance (Functor f, Choice q) => Bimodule (->) Either Either (Cayley f q)
deriving via (FromBifunctor Arg) instance Bimodule (->) Either Either Arg
deriving via (FromBifunctor Const) instance Bimodule (->) Either Either Const
deriving via (FromBifunctor Either) instance Bimodule (->) Either Either Either
deriving via (FromBifunctor These) instance Bimodule (->) Either Either These
deriving via (FromBifunctor (K1 i)) instance Bimodule (->) Either Either (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance Bimodule (->) Either Either (,)
deriving via (FromBifunctor ((,,) x1)) instance Bimodule (->) Either Either ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance Bimodule (->) Either Either ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance Bimodule (->) Either Either ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance Bimodule (->) Either Either ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance Bimodule (->) Either Either ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance Bimodule (->) These These Arg
deriving via (FromBifunctor Const) instance Bimodule (->) These These Const
deriving via (FromBifunctor Either) instance Bimodule (->) These These Either
deriving via (FromBifunctor These) instance Bimodule (->) These These These
deriving via (FromBifunctor (K1 i)) instance Bimodule (->) These These (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance Bimodule (->) These These (,)
deriving via (FromBifunctor ((,,) x1)) instance Bimodule (->) These These ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance Bimodule (->) These These ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance Bimodule (->) These These ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance Bimodule (->) These These ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance Bimodule (->) These These ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance Bimodule Op (,) (,) Arg
deriving via (FromBifunctor Const) instance Bimodule Op (,) (,) Const
deriving via (FromBifunctor Either) instance Bimodule Op (,) (,) Either
deriving via (FromBifunctor These) instance Bimodule Op (,) (,) These
deriving via (FromBifunctor (K1 i)) instance Bimodule Op (,) (,) (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance Bimodule Op (,) (,) (,)
deriving via (FromBifunctor ((,,) x1)) instance Bimodule Op (,) (,) ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance Bimodule Op (,) (,) ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance Bimodule Op (,) (,) ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance Bimodule Op (,) (,) ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance Bimodule Op (,) (,) ((,,,,,,) x1 x2 x3 x4 x5)
class LeftCoModule cat t1 t2 f where
lcostrength :: cat (f (t1 a x) (t2 b x)) (f a b)
instance Costrong p => LeftCoModule (->) (,) (,) (FromProfunctor p) where
lcostrength :: FromProfunctor p (a, x) (b, x) -> FromProfunctor p a b
lcostrength :: forall a x b.
FromProfunctor p (a, x) (b, x) -> FromProfunctor p a b
lcostrength = forall (p :: * -> * -> *) a d b.
Costrong p =>
p (a, d) (b, d) -> p a b
unfirst
instance Cochoice p => LeftCoModule (->) Either Either (FromProfunctor p) where
lcostrength :: Cochoice p => FromProfunctor p (Either a x) (Either b x) -> FromProfunctor p a b
lcostrength :: forall a x b.
Cochoice p =>
FromProfunctor p (Either a x) (Either b x) -> FromProfunctor p a b
lcostrength = forall (p :: * -> * -> *) a d b.
Cochoice p =>
p (Either a d) (Either b d) -> p a b
unleft
instance Bifunctor p => LeftCoModule (->) (,) (,) (FromBifunctor p) where
lcostrength :: Bifunctor p => FromBifunctor p (a, x) (b, x) -> FromBifunctor p a b
lcostrength :: forall a x b.
Bifunctor p =>
FromBifunctor p (a, x) (b, x) -> FromBifunctor p a b
lcostrength = forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. (a, b) -> a
fst forall a b. (a, b) -> a
fst
instance Bifunctor p => LeftCoModule Op Either Either (FromBifunctor p) where
lcostrength :: Bifunctor p => Op (FromBifunctor p (Either a x) (Either b x)) (FromBifunctor p a b)
lcostrength :: forall a x b.
Bifunctor p =>
Op
(FromBifunctor p (Either a x) (Either b x)) (FromBifunctor p a b)
lcostrength = forall a b. (b -> a) -> Op a b
Op (forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. a -> Either a b
Left forall a b. a -> Either a b
Left)
instance Bifunctor p => LeftCoModule Op These These (FromBifunctor p) where
lcostrength :: Bifunctor p => Op (FromBifunctor p (These a x) (These b x)) (FromBifunctor p a b)
lcostrength :: forall a x b.
Bifunctor p =>
Op (FromBifunctor p (These a x) (These b x)) (FromBifunctor p a b)
lcostrength = forall a b. (b -> a) -> Op a b
Op (forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. a -> These a b
This forall a b. a -> These a b
This)
deriving via (FromProfunctor (Kleisli m)) instance MonadFix m => LeftCoModule (->) (,) (,) (Kleisli m)
deriving via (FromProfunctor Tagged) instance LeftCoModule (->) (,) (,) Tagged
deriving via (FromProfunctor (Coyoneda p)) instance Costrong p => LeftCoModule (->) (,) (,) (Coyoneda p)
deriving via (FromProfunctor (Copastro p)) instance Cochoice p => LeftCoModule (->) (,) (,) (Copastro p)
deriving via (FromProfunctor (Yoneda p)) instance Costrong p => LeftCoModule (->) (,) (,) (Yoneda p)
deriving via (FromProfunctor (->)) instance LeftCoModule (->) (,) (,) (->)
deriving via (FromProfunctor (Cokleisli f)) instance Functor f => LeftCoModule (->) (,) (,) (Cokleisli f)
deriving via (FromProfunctor (Costar f)) instance Functor f => LeftCoModule (->) (,) (,) (Costar f)
deriving via (FromProfunctor (WrappedArrow p)) instance ArrowLoop p => LeftCoModule (->) (,) (,) (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Costrong p, Costrong q) => LeftCoModule (->) (,) (,) (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Costrong p, Costrong q) => LeftCoModule (->) (,) (,) (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Costrong p) => LeftCoModule (->) (,) (,) (Tannen f p)
deriving via (FromProfunctor (Procompose p q)) instance (Corepresentable p, Corepresentable q) => LeftCoModule (->) (,) (,) (Procompose p q)
deriving via (FromProfunctor (Cayley f p)) instance (Functor f, Costrong p) => LeftCoModule (->) (,) (,) (Cayley f p)
deriving via (FromProfunctor (CopastroSum p)) instance LeftCoModule (->) Either Either (CopastroSum p)
deriving via (FromProfunctor (CotambaraSum p)) instance LeftCoModule (->) Either Either (CotambaraSum p)
deriving via (FromProfunctor (Coyoneda p)) instance Cochoice p => LeftCoModule (->) Either Either (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Cochoice p => LeftCoModule (->) Either Either (Yoneda p)
deriving via (FromProfunctor (->)) instance LeftCoModule (->) Either Either (->)
deriving via (FromProfunctor (Forget r)) instance LeftCoModule (->) Either Either (Forget r)
deriving via (FromProfunctor (Costar f)) instance Applicative f => LeftCoModule (->) Either Either (Costar f)
deriving via (FromProfunctor (Star f)) instance Traversable f => LeftCoModule (->) Either Either (Star f)
deriving via (FromProfunctor (Sum p q)) instance (Cochoice p, Cochoice q) => LeftCoModule (->) Either Either (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Cochoice p, Cochoice q) => LeftCoModule (->) Either Either (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Cochoice p) => LeftCoModule (->) Either Either (Tannen f p)
deriving via (FromProfunctor (Cayley f p)) instance (Functor f, Cochoice p) => LeftCoModule (->) Either Either (Cayley f p)
deriving via (FromBifunctor Arg) instance LeftCoModule (->) (,) (,) Arg
deriving via (FromBifunctor Const) instance LeftCoModule (->) (,) (,) Const
deriving via (FromBifunctor Either) instance LeftCoModule (->) (,) (,) Either
deriving via (FromBifunctor These) instance LeftCoModule (->) (,) (,) These
deriving via (FromBifunctor (K1 i)) instance LeftCoModule (->) (,) (,) (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance LeftCoModule (->) (,) (,) (,)
deriving via (FromBifunctor ((,,) x1)) instance LeftCoModule (->) (,) (,) ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance LeftCoModule (->) (,) (,) ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance LeftCoModule (->) (,) (,) ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance LeftCoModule (->) (,) (,) ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance LeftCoModule (->) (,) (,) ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance LeftCoModule Op Either Either Arg
deriving via (FromBifunctor Const) instance LeftCoModule Op Either Either Const
deriving via (FromBifunctor Either) instance LeftCoModule Op Either Either Either
deriving via (FromBifunctor These) instance LeftCoModule Op Either Either These
deriving via (FromBifunctor (K1 i)) instance LeftCoModule Op Either Either (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance LeftCoModule Op Either Either (,)
deriving via (FromBifunctor ((,,) x1)) instance LeftCoModule Op Either Either ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance LeftCoModule Op Either Either ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance LeftCoModule Op Either Either ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance LeftCoModule Op Either Either ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance LeftCoModule Op Either Either ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance LeftCoModule Op These These Arg
deriving via (FromBifunctor Const) instance LeftCoModule Op These These Const
deriving via (FromBifunctor Either) instance LeftCoModule Op These These Either
deriving via (FromBifunctor These) instance LeftCoModule Op These These These
deriving via (FromBifunctor (K1 i)) instance LeftCoModule Op These These (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance LeftCoModule Op These These (,)
deriving via (FromBifunctor ((,,) x1)) instance LeftCoModule Op These These ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance LeftCoModule Op These These ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance LeftCoModule Op These These ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance LeftCoModule Op These These ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance LeftCoModule Op These These ((,,,,,,) x1 x2 x3 x4 x5)
class RightCoModule cat t1 t2 f where
rcostrength :: cat (f (x `t1` a) (x `t2` b)) (f a b)
instance Costrong p => RightCoModule (->) (,) (,) (FromProfunctor p) where
rcostrength :: FromProfunctor p (x, a) (x, b) -> FromProfunctor p a b
rcostrength :: forall x a b.
FromProfunctor p (x, a) (x, b) -> FromProfunctor p a b
rcostrength = forall (p :: * -> * -> *) d a b.
Costrong p =>
p (d, a) (d, b) -> p a b
unsecond
instance Cochoice p => RightCoModule (->) Either Either (FromProfunctor p) where
rcostrength :: FromProfunctor p (Either x a) (Either x b) -> FromProfunctor p a b
rcostrength :: forall x a b.
FromProfunctor p (Either x a) (Either x b) -> FromProfunctor p a b
rcostrength = forall (p :: * -> * -> *) d a b.
Cochoice p =>
p (Either d a) (Either d b) -> p a b
unright
instance Bifunctor p => RightCoModule (->) (,) (,) (FromBifunctor p) where
rcostrength :: FromBifunctor p (x, a) (x, b) -> FromBifunctor p a b
rcostrength :: forall x a b. FromBifunctor p (x, a) (x, b) -> FromBifunctor p a b
rcostrength = forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. (a, b) -> b
snd forall a b. (a, b) -> b
snd
instance Bifunctor p => RightCoModule Op Either Either (FromBifunctor p) where
rcostrength :: Op (FromBifunctor p (Either x a) (Either x b)) (FromBifunctor p a b)
rcostrength :: forall x a b.
Op
(FromBifunctor p (Either x a) (Either x b)) (FromBifunctor p a b)
rcostrength = forall a b. (b -> a) -> Op a b
Op (forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. b -> Either a b
Right forall a b. b -> Either a b
Right)
instance Bifunctor p => RightCoModule Op These These (FromBifunctor p) where
rcostrength :: Op (FromBifunctor p (These x a) (These x b)) (FromBifunctor p a b)
rcostrength :: forall x a b.
Op (FromBifunctor p (These x a) (These x b)) (FromBifunctor p a b)
rcostrength = forall a b. (b -> a) -> Op a b
Op (forall (cat1 :: * -> * -> *) (cat2 :: * -> * -> *)
(cat3 :: * -> * -> *) (t :: * -> * -> *) a b c d.
GBifunctor cat1 cat2 cat3 t =>
cat1 a b -> cat2 c d -> cat3 (t a c) (t b d)
gbimap forall a b. b -> These a b
That forall a b. b -> These a b
That)
deriving via (FromProfunctor (Kleisli m)) instance MonadFix m => RightCoModule (->) (,) (,) (Kleisli m)
deriving via (FromProfunctor Tagged) instance RightCoModule (->) (,) (,) Tagged
deriving via (FromProfunctor (Coyoneda p)) instance Costrong p => RightCoModule (->) (,) (,) (Coyoneda p)
deriving via (FromProfunctor (Copastro p)) instance Cochoice p => RightCoModule (->) (,) (,) (Copastro p)
deriving via (FromProfunctor (Yoneda p)) instance Costrong p => RightCoModule (->) (,) (,) (Yoneda p)
deriving via (FromProfunctor (->)) instance RightCoModule (->) (,) (,) (->)
deriving via (FromProfunctor (Cokleisli f)) instance Functor f => RightCoModule (->) (,) (,) (Cokleisli f)
deriving via (FromProfunctor (Costar f)) instance Functor f => RightCoModule (->) (,) (,) (Costar f)
deriving via (FromProfunctor (WrappedArrow p)) instance ArrowLoop p => RightCoModule (->) (,) (,) (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Costrong p, Costrong q) => RightCoModule (->) (,) (,) (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Costrong p, Costrong q) => RightCoModule (->) (,) (,) (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Costrong p) => RightCoModule (->) (,) (,) (Tannen f p)
deriving via (FromProfunctor (Procompose p q)) instance (Corepresentable p, Corepresentable q) => RightCoModule (->) (,) (,) (Procompose p q)
deriving via (FromProfunctor (Cayley f p)) instance (Functor f, Costrong p) => RightCoModule (->) (,) (,) (Cayley f p)
deriving via (FromProfunctor (CopastroSum p)) instance RightCoModule (->) Either Either (CopastroSum p)
deriving via (FromProfunctor (CotambaraSum p)) instance RightCoModule (->) Either Either (CotambaraSum p)
deriving via (FromProfunctor (Coyoneda p)) instance Cochoice p => RightCoModule (->) Either Either (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Cochoice p => RightCoModule (->) Either Either (Yoneda p)
deriving via (FromProfunctor (->)) instance RightCoModule (->) Either Either (->)
deriving via (FromProfunctor (Forget r)) instance RightCoModule (->) Either Either (Forget r)
deriving via (FromProfunctor (Costar f)) instance Applicative f => RightCoModule (->) Either Either (Costar f)
deriving via (FromProfunctor (Star f)) instance Traversable f => RightCoModule (->) Either Either (Star f)
deriving via (FromProfunctor (Sum p q)) instance (Cochoice p, Cochoice q) => RightCoModule (->) Either Either (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Cochoice p, Cochoice q) => RightCoModule (->) Either Either (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Cochoice p) => RightCoModule (->) Either Either (Tannen f p)
deriving via (FromProfunctor (Cayley f p)) instance (Functor f, Cochoice p) => RightCoModule (->) Either Either (Cayley f p)
deriving via (FromBifunctor Arg) instance RightCoModule (->) (,) (,) Arg
deriving via (FromBifunctor Const) instance RightCoModule (->) (,) (,) Const
deriving via (FromBifunctor Either) instance RightCoModule (->) (,) (,) Either
deriving via (FromBifunctor These) instance RightCoModule (->) (,) (,) These
deriving via (FromBifunctor (K1 i)) instance RightCoModule (->) (,) (,) (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance RightCoModule (->) (,) (,) (,)
deriving via (FromBifunctor ((,,) x1)) instance RightCoModule (->) (,) (,) ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance RightCoModule (->) (,) (,) ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance RightCoModule (->) (,) (,) ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance RightCoModule (->) (,) (,) ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance RightCoModule (->) (,) (,) ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance RightCoModule Op Either Either Arg
deriving via (FromBifunctor Const) instance RightCoModule Op Either Either Const
deriving via (FromBifunctor Either) instance RightCoModule Op Either Either Either
deriving via (FromBifunctor These) instance RightCoModule Op Either Either These
deriving via (FromBifunctor (K1 i)) instance RightCoModule Op Either Either (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance RightCoModule Op Either Either (,)
deriving via (FromBifunctor ((,,) x1)) instance RightCoModule Op Either Either ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance RightCoModule Op Either Either ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance RightCoModule Op Either Either ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance RightCoModule Op Either Either ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance RightCoModule Op Either Either ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance RightCoModule Op These These Arg
deriving via (FromBifunctor Const) instance RightCoModule Op These These Const
deriving via (FromBifunctor Either) instance RightCoModule Op These These Either
deriving via (FromBifunctor These) instance RightCoModule Op These These These
deriving via (FromBifunctor (K1 i)) instance RightCoModule Op These These (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance RightCoModule Op These These (,)
deriving via (FromBifunctor ((,,) x1)) instance RightCoModule Op These These ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance RightCoModule Op These These ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance RightCoModule Op These These ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance RightCoModule Op These These ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance RightCoModule Op These These ((,,,,,,) x1 x2 x3 x4 x5)
class (LeftCoModule cat t1 t2 f, RightCoModule cat t1 t2 f) => CoBimodule cat t1 t2 f
instance Costrong p => CoBimodule (->) (,) (,) (FromProfunctor p)
instance Cochoice p => CoBimodule (->) Either Either (FromProfunctor p)
instance Bifunctor p => CoBimodule (->) (,) (,) (FromBifunctor p)
instance Bifunctor p => CoBimodule Op Either Either (FromBifunctor p)
instance Bifunctor p => CoBimodule Op These These (FromBifunctor p)
deriving via (FromProfunctor (Kleisli m)) instance MonadFix m => CoBimodule (->) (,) (,) (Kleisli m)
deriving via (FromProfunctor Tagged) instance CoBimodule (->) (,) (,) Tagged
deriving via (FromProfunctor (Coyoneda p)) instance Costrong p => CoBimodule (->) (,) (,) (Coyoneda p)
deriving via (FromProfunctor (Copastro p)) instance Cochoice p => CoBimodule (->) (,) (,) (Copastro p)
deriving via (FromProfunctor (Yoneda p)) instance Costrong p => CoBimodule (->) (,) (,) (Yoneda p)
deriving via (FromProfunctor (->)) instance CoBimodule (->) (,) (,) (->)
deriving via (FromProfunctor (Cokleisli f)) instance Functor f => CoBimodule (->) (,) (,) (Cokleisli f)
deriving via (FromProfunctor (Costar f)) instance Functor f => CoBimodule (->) (,) (,) (Costar f)
deriving via (FromProfunctor (WrappedArrow p)) instance ArrowLoop p => CoBimodule (->) (,) (,) (WrappedArrow p)
deriving via (FromProfunctor (Sum p q)) instance (Costrong p, Costrong q) => CoBimodule (->) (,) (,) (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Costrong p, Costrong q) => CoBimodule (->) (,) (,) (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Costrong p) => CoBimodule (->) (,) (,) (Tannen f p)
deriving via (FromProfunctor (Procompose p q)) instance (Corepresentable p, Corepresentable q) => CoBimodule (->) (,) (,) (Procompose p q)
deriving via (FromProfunctor (Cayley f p)) instance (Functor f, Costrong p) => CoBimodule (->) (,) (,) (Cayley f p)
deriving via (FromProfunctor (CopastroSum p)) instance CoBimodule (->) Either Either (CopastroSum p)
deriving via (FromProfunctor (CotambaraSum p)) instance CoBimodule (->) Either Either (CotambaraSum p)
deriving via (FromProfunctor (Coyoneda p)) instance Cochoice p => CoBimodule (->) Either Either (Coyoneda p)
deriving via (FromProfunctor (Yoneda p)) instance Cochoice p => CoBimodule (->) Either Either (Yoneda p)
deriving via (FromProfunctor (->)) instance CoBimodule (->) Either Either (->)
deriving via (FromProfunctor (Forget r)) instance CoBimodule (->) Either Either (Forget r)
deriving via (FromProfunctor (Costar f)) instance Applicative f => CoBimodule (->) Either Either (Costar f)
deriving via (FromProfunctor (Star f)) instance Traversable f => CoBimodule (->) Either Either (Star f)
deriving via (FromProfunctor (Sum p q)) instance (Cochoice p, Cochoice q) => CoBimodule (->) Either Either (Sum p q)
deriving via (FromProfunctor (Product p q)) instance (Cochoice p, Cochoice q) => CoBimodule (->) Either Either (Product p q)
deriving via (FromProfunctor (Tannen f p)) instance (Functor f, Cochoice p) => CoBimodule (->) Either Either (Tannen f p)
deriving via (FromProfunctor (Cayley f p)) instance (Functor f, Cochoice p) => CoBimodule (->) Either Either (Cayley f p)
deriving via (FromBifunctor Arg) instance CoBimodule (->) (,) (,) Arg
deriving via (FromBifunctor Const) instance CoBimodule (->) (,) (,) Const
deriving via (FromBifunctor Either) instance CoBimodule (->) (,) (,) Either
deriving via (FromBifunctor These) instance CoBimodule (->) (,) (,) These
deriving via (FromBifunctor (K1 i)) instance CoBimodule (->) (,) (,) (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance CoBimodule (->) (,) (,) (,)
deriving via (FromBifunctor ((,,) x1)) instance CoBimodule (->) (,) (,) ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance CoBimodule (->) (,) (,) ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance CoBimodule (->) (,) (,) ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance CoBimodule (->) (,) (,) ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance CoBimodule (->) (,) (,) ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance CoBimodule Op Either Either Arg
deriving via (FromBifunctor Const) instance CoBimodule Op Either Either Const
deriving via (FromBifunctor Either) instance CoBimodule Op Either Either Either
deriving via (FromBifunctor These) instance CoBimodule Op Either Either These
deriving via (FromBifunctor (K1 i)) instance CoBimodule Op Either Either (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance CoBimodule Op Either Either (,)
deriving via (FromBifunctor ((,,) x1)) instance CoBimodule Op Either Either ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance CoBimodule Op Either Either ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance CoBimodule Op Either Either ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance CoBimodule Op Either Either ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance CoBimodule Op Either Either ((,,,,,,) x1 x2 x3 x4 x5)
deriving via (FromBifunctor Arg) instance CoBimodule Op These These Arg
deriving via (FromBifunctor Const) instance CoBimodule Op These These Const
deriving via (FromBifunctor Either) instance CoBimodule Op These These Either
deriving via (FromBifunctor These) instance CoBimodule Op These These These
deriving via (FromBifunctor (K1 i)) instance CoBimodule Op These These (K1 i :: Type -> Type -> Type)
deriving via (FromBifunctor (,)) instance CoBimodule Op These These (,)
deriving via (FromBifunctor ((,,) x1)) instance CoBimodule Op These These ((,,) x1)
deriving via (FromBifunctor ((,,,) x1 x2)) instance CoBimodule Op These These ((,,,) x1 x2)
deriving via (FromBifunctor ((,,,,) x1 x2 x3)) instance CoBimodule Op These These ((,,,,) x1 x2 x3)
deriving via (FromBifunctor ((,,,,,) x1 x2 x3 x4)) instance CoBimodule Op These These ((,,,,,) x1 x2 x3 x4)
deriving via (FromBifunctor ((,,,,,,) x1 x2 x3 x4 x5)) instance CoBimodule Op These These ((,,,,,,) x1 x2 x3 x4 x5)