compdata-0.11: Compositional Data Types

Copyright(c) 2011 Patrick Bahr
LicenseBSD3
MaintainerPatrick Bahr <paba@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellSafe
LanguageHaskell98

Data.Comp.Multi.HTraversable

Description

This module defines higher-order traversable functors.

Documentation

class HFoldable t => HTraversable t where Source #

Minimal complete definition

hmapM, htraverse

Methods

hmapM :: Monad m => NatM m a b -> NatM m (t a) (t b) Source #

Map each element of a structure to a monadic action, evaluate these actions from left to right, and collect the results.

Alternative type in terms of natural transformations using functor composition :.::

hmapM :: Monad m => (a :-> m :.: b) -> t a :-> m :.: (t b)

htraverse :: Applicative f => NatM f a b -> NatM f (t a) (t b) Source #

Instances

HTraversable f => HTraversable (Cxt h f) Source # 

Methods

hmapM :: Monad m => NatM m a b -> NatM m (Cxt h f a) (Cxt h f b) Source #

htraverse :: Applicative f => NatM f a b -> NatM f (Cxt h f a) (Cxt h f b) Source #

HTraversable f => HTraversable ((:&:) * f a) Source # 

Methods

hmapM :: Monad m => NatM m a b -> NatM m ((* :&: f) a a) ((* :&: f) a b) Source #

htraverse :: Applicative f => NatM f a b -> NatM f ((* :&: f) a a) ((* :&: f) a b) Source #

(HTraversable f, HTraversable g) => HTraversable ((:+:) * f g) Source # 

Methods

hmapM :: Monad m => NatM m a b -> NatM m ((* :+: f) g a) ((* :+: f) g b) Source #

htraverse :: Applicative f => NatM f a b -> NatM f ((* :+: f) g a) ((* :+: f) g b) Source #