Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- data FreeTraversing (p :: Type -> Type -> Type) a b where
- 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
- type TraversingA p = Free (FreeTraversing p)
- liftTraversing :: p a b -> TraversingA p a b
- 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
- foldTraversing' :: Category q => Traversing q => (p :-> q) -> TraversingA p a b -> q a b
- runTraversingT :: Traversing q => (p :-> q) -> FreeTraversing p a b -> q a b
- runTraversingM :: Monad m => (forall f x y. Traversable f => p x y -> f x -> m (f y)) -> TraversingA p a b -> a -> m b
- runTraversingM' :: Monad m => (forall x y. p x y -> x -> m y) -> TraversingA p a b -> a -> m b
Documentation
data FreeTraversing (p :: Type -> Type -> Type) a b where #
FreeTraversing -| CofreeTraversing
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
type TraversingA p = Free (FreeTraversing p) Source #
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