profunctors-5.2: Profunctors

Data.Profunctor.Cayley

Description

Synopsis

# Documentation

newtype Cayley f p a b Source #

Constructors

 Cayley FieldsrunCayley :: f (p a b)

Instances

 Source # Cayley transforms Comonads in Hask into comonads on Prof Methodsproextract :: Profunctor p => Cayley f p :-> p Source #produplicate :: Profunctor p => Cayley f p :-> Cayley f (Cayley f p) Source # (Functor f, Monad f) => ProfunctorMonad (Cayley f) Source # Cayley transforms Monads in Hask into monads on Prof Methodsproreturn :: Profunctor p => p :-> Cayley f p Source #projoin :: Profunctor p => Cayley f (Cayley f p) :-> Cayley f p Source # Source # Methodspromap :: Profunctor p => (p :-> q) -> Cayley f p :-> Cayley f q Source # (Applicative f, Category * p) => Category * (Cayley f p) Source # Methodsid :: cat a a #(.) :: cat b c -> cat a b -> cat a c # (Applicative f, Arrow p) => Arrow (Cayley f p) Source # Methodsarr :: (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 # MethodszeroArrow :: Cayley f p b c # (Applicative f, ArrowPlus p) => ArrowPlus (Cayley f p) Source # 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 # Methodsleft :: 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 # Methodsloop :: Cayley f p (b, d) (c, d) -> Cayley f p b c # (Functor f, Profunctor p) => Profunctor (Cayley f p) Source # Methodsdimap :: (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 => (b -> c) -> Cayley f p a b -> Cayley f p a c Source #(.#) :: Coercible * b a => Cayley f p b c -> (a -> b) -> Cayley f p a c Source # (Functor f, Strong p) => Strong (Cayley f p) Source # Methodsfirst' :: 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 # Methodsleft' :: 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 #