semigroupoid-extras-5: Semigroupoids that depend on PolyKinds

Copyright(C) 2011-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Semigroupoid.Coproduct

Description

 

Documentation

data Coproduct j k a b where Source

Constructors

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

Instances

(Groupoid k j, Groupoid k1 k2) => Groupoid (Either k k) (Coproduct k k k k j k) 
(Semigroupoid k j, Semigroupoid k1 k2) => Semigroupoid (Either k k) (Coproduct k k k k j k) 
(Semigroupoid k l, Ob k1 r a) => Ob (Either k k) (Coproduct k k k k l r) (Right k k a) 
(Ob k1 l a, Semigroupoid k r) => Ob (Either k k) (Coproduct k k k k l r) (Left k k a)