proton-0.0.4
Safe HaskellNone
LanguageHaskell2010

Data.Profunctor.Arrow

Synopsis

Documentation

arr :: (Profunctor p, Category p) => (a -> b) -> p a b Source #

(***) :: (Category p, Strong p) => p b c -> p b' c' -> p (b, b') (c, c') Source #

Split the input between the two argument profunctors and combine their output.

(&&&) :: (Category p, Strong p) => p b c -> p b c' -> p b (c, c') Source #

Fanout: send the input to both argument arrows and combine their output.

(^>>) :: (Profunctor p, Category p) => (b -> c) -> p c d -> p b d Source #

Precomposition with a pure function.

(>>^) :: (Profunctor p, Category p) => p b c -> (c -> d) -> p b d Source #

Postcomposition with a pure function.

(<<^) :: (Profunctor p, Category p) => p c d -> (b -> c) -> p b d Source #

Precomposition with a pure function (right-to-left variant).

(^<<) :: (Profunctor p, Category p) => (c -> d) -> p b c -> p b d Source #

Postcomposition with a pure function (right-to-left variant).

(+++) :: (Choice p, Category p) => p b c -> p b' c' -> p (Either b b') (Either c c') Source #

(|||) :: (Choice p, Category p) => p b d -> p c d -> p (Either b c) d Source #

class Profunctor p => ProfunctorZero p where Source #

Methods

zeroProfunctor :: p a b Source #

Instances

Instances details
(Monad m, Alternative m) => ProfunctorZero (Kleisli m) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Kleisli m a b Source #

ProfunctorZero p => ProfunctorZero (Yoneda p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Yoneda p a b Source #

ProfunctorZero p => ProfunctorZero (Codensity p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

ProfunctorZero p => ProfunctorZero (CofreeMapping p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

ProfunctorZero p => ProfunctorZero (CofreeTraversing p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

ProfunctorZero p => ProfunctorZero (TambaraSum p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

ProfunctorZero p => ProfunctorZero (Closure p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Closure p a b Source #

ProfunctorZero p => ProfunctorZero (Tambara p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Tambara p a b Source #

Alternative f => ProfunctorZero (Star f) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Star f a b Source #

ArrowZero p => ProfunctorZero (WrappedArrow p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Monoid r => ProfunctorZero (Forget r) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Forget r a b Source #

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

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Cayley f p a b Source #

(Profunctor p, ProfunctorZero q) => ProfunctorZero (Rift p q) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Rift p q a b Source #

Alternative f => ProfunctorZero (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Joker f a b Source #

(ProfunctorZero p, ProfunctorZero q) => ProfunctorZero (Product p q) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Product p q a b Source #

(Applicative f, ProfunctorZero p) => ProfunctorZero (Tannen f p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Tannen f p a b Source #

(ProfunctorZero p, Functor f, Functor g) => ProfunctorZero (Biff p f g) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

zeroProfunctor :: Biff p f g a b Source #

class ProfunctorZero p => ProfunctorPlus p where Source #

Methods

(<+>) :: p a b -> p a b -> p a b Source #

Instances

Instances details
(Monad m, Alternative m) => ProfunctorPlus (Kleisli m) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Kleisli m a b -> Kleisli m a b -> Kleisli m a b Source #

ProfunctorPlus p => ProfunctorPlus (Codensity p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Codensity p a b -> Codensity p a b -> Codensity p a b Source #

ProfunctorPlus p => ProfunctorPlus (CofreeMapping p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: CofreeMapping p a b -> CofreeMapping p a b -> CofreeMapping p a b Source #

ProfunctorPlus p => ProfunctorPlus (CofreeTraversing p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

ProfunctorPlus p => ProfunctorPlus (TambaraSum p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: TambaraSum p a b -> TambaraSum p a b -> TambaraSum p a b Source #

ProfunctorPlus p => ProfunctorPlus (Closure p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Closure p a b -> Closure p a b -> Closure p a b Source #

ProfunctorPlus p => ProfunctorPlus (Tambara p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Tambara p a b -> Tambara p a b -> Tambara p a b Source #

Alternative f => ProfunctorPlus (Star f) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Star f a b -> Star f a b -> Star f a b Source #

ArrowPlus p => ProfunctorPlus (WrappedArrow p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: WrappedArrow p a b -> WrappedArrow p a b -> WrappedArrow p a b Source #

Monoid r => ProfunctorPlus (Forget r) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Forget r a b -> Forget r a b -> Forget r a b Source #

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

Defined in Data.Profunctor.Arrow

Methods

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

(Profunctor p, ProfunctorPlus q) => ProfunctorPlus (Rift p q) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Rift p q a b -> Rift p q a b -> Rift p q a b Source #

Alternative f => ProfunctorPlus (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Joker f a b -> Joker f a b -> Joker f a b Source #

(ProfunctorPlus p, ProfunctorPlus q) => ProfunctorPlus (Product p q) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Product p q a b -> Product p q a b -> Product p q a b Source #

(Applicative f, ProfunctorPlus p) => ProfunctorPlus (Tannen f p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Tannen f p a b -> Tannen f p a b -> Tannen f p a b Source #

(ProfunctorPlus p, Functor f, Functor g) => ProfunctorPlus (Biff p f g) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

(<+>) :: Biff p f g a b -> Biff p f g a b -> Biff p f g a b Source #

class Profunctor p => ProfunctorApply p where Source #

Methods

app :: p (p a b, a) b Source #

Instances

Instances details
Monad m => ProfunctorApply (Kleisli m) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

app :: Kleisli m (Kleisli m a b, a) b Source #

Functor f => ProfunctorApply (Star f) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

app :: Star f (Star f a b, a) b Source #

(Arrow p, ArrowApply p) => ProfunctorApply (WrappedArrow p) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

app :: WrappedArrow p (WrappedArrow p a b, a) b Source #

ProfunctorApply (Forget r) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

app :: Forget r (Forget r a b, a) b Source #

ProfunctorApply (ContP r) Source # 
Instance details

Defined in Data.Profunctor.Cont

Methods

app :: ContP r (ContP r a b, a) b Source #

ProfunctorApply ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

app :: (a -> b, a) -> b Source #

Alternative g => ProfunctorApply (Joker g :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Arrow

Methods

app :: Joker g (Joker g a b, a) b Source #