semigroupoid-extras-3.0.1: Semigroupoids requiring Haskell extensions

Safe HaskellNone

Data.Semigroupoid.Coproduct

Documentation

data L a

Instances

(Ob l a, Semigroupoid r) => Ob (Coproduct l r) (L a) 

data R a

Instances

(Semigroupoid l, Ob r a) => Ob (Coproduct l r) (R a) 

data Coproduct j k a b where

Constructors

L :: j a b -> Coproduct j k (L a) (L b) 
R :: k a b -> Coproduct j k (R a) (R b) 

Instances

(Groupoid j, Groupoid k) => Groupoid (Coproduct j k) 
(Semigroupoid j, Semigroupoid k) => Semigroupoid (Coproduct j k) 
(Semigroupoid l, Ob r a) => Ob (Coproduct l r) (R a) 
(Ob l a, Semigroupoid r) => Ob (Coproduct l r) (L a) 

factorDualCoproduct :: Coproduct (Dual j) (Dual k) a b -> Dual (Coproduct j k) a b