quickcheck-state-machine-0.3.1: Test monadic programs using state machine based models

Copyright(C) 2017 ATS Advanced Telematic Systems GmbH Jacob Stanley
LicenseBSD-style (see the file LICENSE)
MaintainerStevan Andjelkovic <stevan@advancedtelematic.com>
Stabilityprovisional
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe
LanguageHaskell2010

Test.StateMachine.Types.HFunctor

Description

This module exports a higher-order version of functors, foldable functors, and traversable functors.

Synopsis

Documentation

class HFunctor (f :: (* -> *) -> * -> *) where Source #

Higher-order functors.

Methods

hfmap :: (forall a. g a -> h a) -> f g b -> f h b Source #

Higher-order version of fmap.

hfmap :: HTraversable f => (forall a. g a -> h a) -> f g b -> f h b Source #

Higher-order version of fmap.

Instances

HFunctor Reference Source # 

Methods

hfmap :: (forall a. g a -> h a) -> Reference g b -> Reference h b Source #

hfmap :: HFunctor f => (forall a. g a -> h a) -> f g b -> f h b Source #

Higher-order version of fmap.

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

Higher-order foldable functors.

Methods

hfoldMap :: Monoid m => (forall a. v a -> m) -> t v b -> m Source #

Higher-order version of foldMap.

hfoldMap :: (HTraversable t, Monoid m) => (forall a. v a -> m) -> t v b -> m Source #

Higher-order version of foldMap.

Instances

HFoldable Reference Source # 

Methods

hfoldMap :: Monoid m => (forall a. v a -> m) -> Reference v b -> m Source #

hfoldMap :: (HFoldable t, Monoid m) => (forall a. v a -> m) -> t v b -> m Source #

Higher-order version of foldMap.

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

Higher-order traversable functors.

Minimal complete definition

htraverse

Methods

htraverse :: Applicative f => (forall a. g a -> f (h a)) -> t g b -> f (t h b) Source #

Higher-order version of traverse.

Instances

HTraversable Reference Source # 

Methods

htraverse :: Applicative f => (forall a. g a -> f (h a)) -> Reference g b -> f (Reference h b) Source #

htraverse :: (HTraversable t, Applicative f) => (forall a. g a -> f (h a)) -> t g b -> f (t h b) Source #

Higher-order version of traverse.