profunctor-arrows-0.0.0.1: Profunctor arrows

Safe HaskellSafe
LanguageHaskell2010

Data.Profunctor.Arrow.Traversing

Synopsis

Documentation

data FreeTraversing (p :: Type -> Type -> Type) a b where #

FreeTraversing -| CofreeTraversing

Constructors

FreeTraversing :: forall (p :: Type -> Type -> Type) a b (f :: Type -> Type) y x. Traversable f => (f y -> b) -> p x y -> (a -> f x) -> FreeTraversing p a b 
Instances
ProfunctorFunctor FreeTraversing 
Instance details

Defined in Data.Profunctor.Traversing

Methods

promap :: Profunctor p => (p :-> q) -> FreeTraversing p :-> FreeTraversing q #

ProfunctorMonad FreeTraversing 
Instance details

Defined in Data.Profunctor.Traversing

Traversing (FreeTraversing p) 
Instance details

Defined in Data.Profunctor.Traversing

Methods

traverse' :: Traversable f => FreeTraversing p a b -> FreeTraversing p (f a) (f b) #

wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> FreeTraversing p a b -> FreeTraversing p s t #

Choice (FreeTraversing p) 
Instance details

Defined in Data.Profunctor.Traversing

Methods

left' :: FreeTraversing p a b -> FreeTraversing p (Either a c) (Either b c) #

right' :: FreeTraversing p a b -> FreeTraversing p (Either c a) (Either c b) #

Strong (FreeTraversing p) 
Instance details

Defined in Data.Profunctor.Traversing

Methods

first' :: FreeTraversing p a b -> FreeTraversing p (a, c) (b, c) #

second' :: FreeTraversing p a b -> FreeTraversing p (c, a) (c, b) #

Profunctor (FreeTraversing p) 
Instance details

Defined in Data.Profunctor.Traversing

Methods

dimap :: (a -> b) -> (c -> d) -> FreeTraversing p b c -> FreeTraversing p a d #

lmap :: (a -> b) -> FreeTraversing p b c -> FreeTraversing p a c #

rmap :: (b -> c) -> FreeTraversing p a b -> FreeTraversing p a c #

(#.) :: Coercible c b => q b c -> FreeTraversing p a b -> FreeTraversing p a c #

(.#) :: Coercible b a => FreeTraversing p b c -> q a b -> FreeTraversing p a c #

liftTraversing :: p a b -> TraversingA p a b Source #

TODO: Document

foldTraversing :: Category q => Profunctor q => (forall f x y. Traversable f => p x y -> q (f x) (f y)) -> TraversingA p a b -> q a b Source #

TODO: Document

foldTraversing' :: Category q => Traversing q => (p :-> q) -> TraversingA p a b -> q a b Source #

TODO: Document

runTraversingT :: Traversing q => (p :-> q) -> FreeTraversing p a b -> q a b Source #

TODO: Document

runTraversingM :: Monad m => (forall f x y. Traversable f => p x y -> f x -> m (f y)) -> TraversingA p a b -> a -> m b Source #

TODO: Document

runTraversingM' :: Monad m => (forall x y. p x y -> x -> m y) -> TraversingA p a b -> a -> m b Source #

TODO: Document