profunctors-5.4: Profunctors

Copyright(C) 2014-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Profunctor.Cayley

Description

 

Documentation

newtype Cayley f p a b Source #

Constructors

Cayley 

Fields

Instances
Comonad f => ProfunctorComonad (Cayley f) Source #

Cayley transforms Comonads in Hask into comonads on Prof

Instance details

Defined in Data.Profunctor.Cayley

(Functor f, Monad f) => ProfunctorMonad (Cayley f) Source #

Cayley transforms Monads in Hask into monads on Prof

Instance details

Defined in Data.Profunctor.Cayley

Functor f => ProfunctorFunctor (Cayley f) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

promap :: Profunctor p => (p :-> q) -> Cayley f p :-> Cayley f q Source #

(Applicative f, Category p) => Category (Cayley f p :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

id :: Cayley f p a a #

(.) :: Cayley f p b c -> Cayley f p a b -> Cayley f p a c #

(Applicative f, Arrow p) => Arrow (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

arr :: (b -> c) -> Cayley f p b c #

first :: Cayley f p b c -> Cayley f p (b, d) (c, d) #

second :: Cayley f p b c -> Cayley f p (d, b) (d, c) #

(***) :: Cayley f p b c -> Cayley f p b' c' -> Cayley f p (b, b') (c, c') #

(&&&) :: Cayley f p b c -> Cayley f p b c' -> Cayley f p b (c, c') #

(Applicative f, ArrowZero p) => ArrowZero (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

zeroArrow :: Cayley f p b c #

(Applicative f, ArrowPlus p) => ArrowPlus (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

(<+>) :: Cayley f p b c -> Cayley f p b c -> Cayley f p b c #

(Applicative f, ArrowChoice p) => ArrowChoice (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

left :: Cayley f p b c -> Cayley f p (Either b d) (Either c d) #

right :: Cayley f p b c -> Cayley f p (Either d b) (Either d c) #

(+++) :: Cayley f p b c -> Cayley f p b' c' -> Cayley f p (Either b b') (Either c c') #

(|||) :: Cayley f p b d -> Cayley f p c d -> Cayley f p (Either b c) d #

(Applicative f, ArrowLoop p) => ArrowLoop (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

loop :: Cayley f p (b, d) (c, d) -> Cayley f p b c #

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

Defined in Data.Profunctor.Cayley

Methods

dimap :: (a -> b) -> (c -> d) -> Cayley f p b c -> Cayley f p a d Source #

lmap :: (a -> b) -> Cayley f p b c -> Cayley f p a c Source #

rmap :: (b -> c) -> Cayley f p a b -> Cayley f p a c Source #

(#.) :: Coercible c b => q b c -> Cayley f p a b -> Cayley f p a c Source #

(.#) :: Coercible b a => Cayley f p b c -> q a b -> Cayley f p a c Source #

(Functor f, Strong p) => Strong (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

first' :: Cayley f p a b -> Cayley f p (a, c) (b, c) Source #

second' :: Cayley f p a b -> Cayley f p (c, a) (c, b) Source #

(Functor f, Choice p) => Choice (Cayley f p) Source # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

left' :: Cayley f p a b -> Cayley f p (Either a c) (Either b c) Source #

right' :: Cayley f p a b -> Cayley f p (Either c a) (Either c b) Source #

mapCayley :: (forall a. f a -> g a) -> Cayley f p x y -> Cayley g p x y Source #