categories-1.0.7: Categories

Copyright2008-2010 Edward Kmett
LicenseBSD3
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable (functional-dependencies)
Safe HaskellTrustworthy
LanguageHaskell2010

Control.Categorical.Bifunctor

Description

A more categorical definition of Bifunctor

Synopsis

Documentation

class (Category r, Category t) => PFunctor p r t | p r -> t, p t -> r where Source

Methods

first :: r a b -> t (p a c) (p b c) Source

Instances

PFunctor Either (->) (->) 
PFunctor (,) (->) (->) 

class (Category s, Category t) => QFunctor q s t | q s -> t, q t -> s where Source

Methods

second :: s a b -> t (q c a) (q c b) Source

Instances

QFunctor (->) (->) (->) 
QFunctor Either (->) (->) 
QFunctor (,) (->) (->) 

class (PFunctor p r t, QFunctor p s t) => Bifunctor p r s t | p r -> s t, p s -> r t, p t -> r s where Source

Minimal definition: bimap

Methods

bimap :: r a b -> s c d -> t (p a c) (p b d) Source

Instances

Bifunctor Either (->) (->) (->) 
Bifunctor (,) (->) (->) (->) 

dimap :: Bifunctor f (Dual s) t u => s b a -> t c d -> u (f a c) (f b d) Source

difirst :: PFunctor f (Dual s) t => s b a -> t (f a c) (f b c) Source