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

Data.Profunctor.Monad

Description

 
Synopsis

Documentation

class ProfunctorFunctor t where Source #

ProfunctorFunctor has a polymorphic kind since 5.6.

Methods

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

Laws:

promap f . promap g ≡ promap (f . g)
promap idid

Instances

Instances details
ProfunctorFunctor (Ran p :: (Type -> Type -> Type) -> k -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Ran

Methods

promap :: forall (p0 :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p0 => (p0 :-> q) -> Ran p p0 :-> Ran p q Source #

ProfunctorFunctor (Procompose p :: (Type -> Type -> Type) -> Type -> k -> Type) Source # 
Instance details

Defined in Data.Profunctor.Composition

Methods

promap :: forall (p0 :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p0 => (p0 :-> q) -> Procompose p p0 :-> Procompose p q Source #

ProfunctorFunctor (Rift p :: (Type -> Type -> Type) -> Type -> k -> Type) Source # 
Instance details

Defined in Data.Profunctor.Composition

Methods

promap :: forall (p0 :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p0 => (p0 :-> q) -> Rift p p0 :-> Rift p q Source #

ProfunctorFunctor Copastro Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Copastro p :-> Copastro q Source #

ProfunctorFunctor Cotambara Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Cotambara p :-> Cotambara q Source #

ProfunctorFunctor Pastro Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Pastro p :-> Pastro q Source #

ProfunctorFunctor Tambara Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Tambara p :-> Tambara q Source #

ProfunctorFunctor Environment Source # 
Instance details

Defined in Data.Profunctor.Closed

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Environment p :-> Environment q Source #

ProfunctorFunctor Closure Source # 
Instance details

Defined in Data.Profunctor.Closed

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Closure p :-> Closure q Source #

ProfunctorFunctor CopastroSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> CopastroSum p :-> CopastroSum q Source #

ProfunctorFunctor CotambaraSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> CotambaraSum p :-> CotambaraSum q Source #

ProfunctorFunctor PastroSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> PastroSum p :-> PastroSum q Source #

ProfunctorFunctor TambaraSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> TambaraSum p :-> TambaraSum q Source #

ProfunctorFunctor FreeTraversing Source # 
Instance details

Defined in Data.Profunctor.Traversing

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> FreeTraversing p :-> FreeTraversing q Source #

ProfunctorFunctor CofreeTraversing Source # 
Instance details

Defined in Data.Profunctor.Traversing

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> CofreeTraversing p :-> CofreeTraversing q Source #

ProfunctorFunctor FreeMapping Source # 
Instance details

Defined in Data.Profunctor.Mapping

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> FreeMapping p :-> FreeMapping q Source #

ProfunctorFunctor CofreeMapping Source # 
Instance details

Defined in Data.Profunctor.Mapping

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> CofreeMapping p :-> CofreeMapping q Source #

ProfunctorFunctor Coyoneda Source # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Coyoneda p :-> Coyoneda q Source #

ProfunctorFunctor Yoneda Source # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Yoneda p :-> Yoneda q Source #

ProfunctorFunctor (Sum p :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

promap :: forall (p0 :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p0 => (p0 :-> q) -> Sum p p0 :-> Sum p q Source #

ProfunctorFunctor (Product p :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

promap :: forall (p0 :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p0 => (p0 :-> q) -> Product p p0 :-> Product p q Source #

Functor f => ProfunctorFunctor (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

promap :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Profunctor p => (p :-> q) -> Tannen f p :-> Tannen f q Source #

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

Defined in Data.Profunctor.Cayley

Methods

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

class ProfunctorFunctor t => ProfunctorMonad t where Source #

Methods

proreturn :: Profunctor p => p :-> t p Source #

projoin :: Profunctor p => t (t p) :-> t p Source #

Instances

Instances details
ProfunctorMonad Copastro Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Copastro p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Copastro (Copastro p) :-> Copastro p Source #

ProfunctorMonad Pastro Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Pastro p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Pastro (Pastro p) :-> Pastro p Source #

ProfunctorMonad Environment Source # 
Instance details

Defined in Data.Profunctor.Closed

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Environment p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Environment (Environment p) :-> Environment p Source #

ProfunctorMonad CopastroSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> CopastroSum p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => CopastroSum (CopastroSum p) :-> CopastroSum p Source #

ProfunctorMonad PastroSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> PastroSum p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => PastroSum (PastroSum p) :-> PastroSum p Source #

ProfunctorMonad FreeTraversing Source # 
Instance details

Defined in Data.Profunctor.Traversing

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> FreeTraversing p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => FreeTraversing (FreeTraversing p) :-> FreeTraversing p Source #

ProfunctorMonad FreeMapping Source # 
Instance details

Defined in Data.Profunctor.Mapping

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> FreeMapping p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => FreeMapping (FreeMapping p) :-> FreeMapping p Source #

ProfunctorMonad Coyoneda Source # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Coyoneda p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Coyoneda (Coyoneda p) :-> Coyoneda p Source #

ProfunctorMonad Yoneda Source # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Yoneda p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Yoneda (Yoneda p) :-> Yoneda p Source #

ProfunctorMonad (Sum p) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

proreturn :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => p0 :-> Sum p p0 Source #

projoin :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Sum p (Sum p p0) :-> Sum p p0 Source #

Monad f => ProfunctorMonad (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Tannen f p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Tannen f (Tannen f p) :-> Tannen f p Source #

Category p => ProfunctorMonad (Procompose p :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Composition

Methods

proreturn :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => p0 :-> Procompose p p0 Source #

projoin :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Procompose p (Procompose p p0) :-> Procompose p p0 Source #

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

Cayley transforms Monads in Hask into monads on Prof

Instance details

Defined in Data.Profunctor.Cayley

Methods

proreturn :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Cayley f p Source #

projoin :: forall (p :: Type -> Type -> Type). Profunctor p => Cayley f (Cayley f p) :-> Cayley f p Source #

class ProfunctorFunctor t => ProfunctorComonad t where Source #

Methods

proextract :: Profunctor p => t p :-> p Source #

produplicate :: Profunctor p => t p :-> t (t p) Source #

Instances

Instances details
ProfunctorComonad Cotambara Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Cotambara p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Cotambara p :-> Cotambara (Cotambara p) Source #

ProfunctorComonad Tambara Source # 
Instance details

Defined in Data.Profunctor.Strong

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Tambara p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Tambara p :-> Tambara (Tambara p) Source #

ProfunctorComonad Closure Source # 
Instance details

Defined in Data.Profunctor.Closed

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Closure p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Closure p :-> Closure (Closure p) Source #

ProfunctorComonad CotambaraSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => CotambaraSum p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => CotambaraSum p :-> CotambaraSum (CotambaraSum p) Source #

ProfunctorComonad TambaraSum Source # 
Instance details

Defined in Data.Profunctor.Choice

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => TambaraSum p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => TambaraSum p :-> TambaraSum (TambaraSum p) Source #

ProfunctorComonad CofreeTraversing Source # 
Instance details

Defined in Data.Profunctor.Traversing

ProfunctorComonad CofreeMapping Source # 
Instance details

Defined in Data.Profunctor.Mapping

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => CofreeMapping p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => CofreeMapping p :-> CofreeMapping (CofreeMapping p) Source #

ProfunctorComonad Coyoneda Source # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Coyoneda p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Coyoneda p :-> Coyoneda (Coyoneda p) Source #

ProfunctorComonad Yoneda Source # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Yoneda p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Yoneda p :-> Yoneda (Yoneda p) Source #

ProfunctorComonad (Product p) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

proextract :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Product p p0 :-> p0 Source #

produplicate :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Product p p0 :-> Product p (Product p p0) Source #

Comonad f => ProfunctorComonad (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Monad

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Tannen f p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Tannen f p :-> Tannen f (Tannen f p) Source #

Category p => ProfunctorComonad (Rift p :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Composition

Methods

proextract :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Rift p p0 :-> p0 Source #

produplicate :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Rift p p0 :-> Rift p (Rift p p0) Source #

Category p => ProfunctorComonad (Ran p :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Ran

Methods

proextract :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Ran p p0 :-> p0 Source #

produplicate :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Ran p p0 :-> Ran p (Ran p p0) Source #

Comonad f => ProfunctorComonad (Cayley f :: (Type -> Type -> Type) -> Type -> Type -> Type) Source #

Cayley transforms Comonads in Hask into comonads on Prof

Instance details

Defined in Data.Profunctor.Cayley

Methods

proextract :: forall (p :: Type -> Type -> Type). Profunctor p => Cayley f p :-> p Source #

produplicate :: forall (p :: Type -> Type -> Type). Profunctor p => Cayley f p :-> Cayley f (Cayley f p) Source #