compdata-param-0.9.2: Parametric Compositional Data Types

Copyright(c) 2011 Patrick Bahr Tom Hvitved
LicenseBSD3
MaintainerTom Hvitved <hvitved@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellSafe
LanguageHaskell98

Data.Comp.Param.Multi.HDitraversable

Description

This module defines traversable higher-order difunctors.

Synopsis

Documentation

class HDifunctor f => HDitraversable f where Source #

HDifunctors representing data structures that can be traversed from left to right.

Minimal complete definition

hdimapM

Methods

hdimapM :: Monad m => NatM m b c -> NatM m (f a b) (f a c) Source #

Instances
HDitraversable f => HDitraversable (f :&: p) Source # 
Instance details

Defined in Data.Comp.Param.Multi.Ops

Methods

hdimapM :: Monad m => NatM m b c -> NatM m ((f :&: p) a b) ((f :&: p) a c) Source #

(HDitraversable f, HDitraversable g) => HDitraversable (f :+: g) Source # 
Instance details

Defined in Data.Comp.Param.Multi.Ops

Methods

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

class HFoldable t => HTraversable (t :: (* -> *) -> * -> *) where #

Minimal complete definition

hmapM, htraverse

Methods

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

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) #