| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.MTraversable
Documentation
class MTraversable f fs t | fs -> k where Source
Minimal complete definition
Nothing
Methods
mtraverseP :: Applicative t => Proxy f -> Proxy fs -> Proxy t -> HList (AppMap fs t) -> (f :$: Domains fs) -> t (f :$: Codomains fs) Source
Instances
| MTraversable * Bool ([] *) t | |
| MTraversable * Ordering ([] *) t | |
| MTraversable * () ([] *) t | |
| MTraversable (* -> * -> * -> * -> * -> * -> * -> * -> * -> *) (,,,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ((:) * (h -> h') ((:) * (i -> i') ([] *)))))))))) t | |
| MTraversable (* -> * -> * -> * -> * -> * -> * -> * -> *) (,,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ((:) * (h -> h') ([] *))))))))) t | |
| MTraversable (* -> * -> * -> * -> * -> * -> * -> *) (,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ([] *)))))))) t | |
| MTraversable (* -> * -> * -> * -> * -> * -> *) (,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ([] *))))))) t | |
| MTraversable (* -> * -> * -> * -> * -> *) (,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ([] *)))))) t | |
| MTraversable (* -> * -> * -> * -> *) (,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ([] *))))) t | |
| MTraversable (* -> * -> * -> *) (,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ([] *)))) t | |
| MTraversable (* -> * -> *) Either ((:) * (a -> a') ((:) * (b -> b') ([] *))) t | |
| MTraversable (* -> * -> *) (,) ((:) * (a -> a') ((:) * (b -> b') ([] *))) t | |
| MTraversable (* -> *) [] ((:) * (a -> a') ([] *)) t | |
| MTraversable (* -> *) Sum ((:) * (a -> b) ([] *)) t | |
| MTraversable (* -> *) Product ((:) * (a -> b) ([] *)) t | |
| MTraversable (* -> *) First ((:) * (a -> b) ([] *)) t | |
| MTraversable (* -> *) Last ((:) * (a -> b) ([] *)) t | |
| MTraversable (* -> *) Maybe ((:) * (a -> a') ([] *)) t |
mtraverse :: forall t f fs a b fs'. (Applicative t, Unapply a f (Domains fs), Unapply b f (Codomains fs), UnAppMap fs t fs', MTraversable f fs t) => HList fs' -> a -> t b Source
type family SequenceMap as t Source
Equations
| SequenceMap [] t = [] | |
| SequenceMap (a : as) t = (t a -> a) : SequenceMap as t |
class SequenceMapId as t where Source
Methods
sequenceMapId :: Proxy as -> Proxy t -> HList (AppMap (SequenceMap as t) t) Source
Instances
| SequenceMapId ([] *) t | |
| SequenceMapId as t => SequenceMapId ((:) * a as) t |
msequence :: forall t f as a b. (Applicative t, Unapply a f (Map as t), Unapply b f as, Map as t ~ Domains (SequenceMap as t), as ~ Codomains (SequenceMap as t), MTraversable f (SequenceMap as t) t, SequenceMapId as t) => a -> t b Source
class GMTraversable f fs t where Source
Methods
mtraverseG :: Applicative t => Proxy fs -> HList (AppMap fs t) -> In f (Domains fs) -> t (In f (Codomains fs)) Source
Instances
| GMTraversable (UT *) fs t | |
| GMTraversable (UV *) fs t | |
| GFMTraversable f fs t => GMTraversable (UF * f) fs t | |
| (GMTraversable u fs t, GMTraversable v fs t) => GMTraversable ((:++:) * u v) fs t | |
| (GMTraversable u fs t, GMTraversable v fs t) => GMTraversable ((:**:) * u v) fs t |
class GFMTraversable f fs t where Source
Methods
mtraverseGF :: Applicative t => Proxy fs -> HList (AppMap fs t) -> InField f (Domains fs) -> t (InField f (Codomains fs)) Source
Instances
| GFPMTraversable n fs t => GFMTraversable (FP * n) fs t | |
| GFMTraversable (FK * a) fs t | |
| (MTraversable k f (ExpandFieldFunction as fs) t, (~) * ((:$:) k f (ExpandField as (Codomains fs))) ((:$:) k f (Codomains (ExpandFieldFunction as fs))), (~) * ((:$:) k f (ExpandField as (Domains fs))) ((:$:) k f (Domains (ExpandFieldFunction as fs))), AdaptFieldFunction as fs t) => GFMTraversable ((:@:) * k f as) fs t |
class GFPMTraversable n fs t where Source
Methods
mtraverseGFP :: Applicative t => Proxy n -> Proxy fs -> HList (AppMap fs t) -> (Domains fs :!: n) -> t (Codomains fs :!: n) Source
Instances
| GFPMTraversable NZ ((:) * (a -> b) as) t | |
| GFPMTraversable n as t => GFPMTraversable (NS n) ((:) * (a -> b) as) t |
type family ExpandFieldFunction f ps :: [*] Source
Equations
| ExpandFieldFunction [] ps = [] | |
| ExpandFieldFunction (FK a : fs) ps = (a -> a) : ExpandFieldFunction fs ps | |
| ExpandFieldFunction (FP n : fs) ps = (ps :!: n) : ExpandFieldFunction fs ps | |
| ExpandFieldFunction ((f :@: as) : fs) ps = ((f :$: ExpandField as (Domains ps)) -> f :$: ExpandField as (Codomains ps)) : ExpandFieldFunction fs ps |
class AdaptFieldFunction f fs t where Source
Methods
adaptFieldFunction :: Applicative t => Proxy f -> Proxy fs -> Proxy t -> HList (AppMap fs t) -> HList (AppMap (ExpandFieldFunction f fs) t) Source
Instances
| AdaptFieldFunction ([] (Field *)) fs t | |
| (MTraversable k f (ExpandFieldFunction bs fs) t, (~) * ((:$:) k f (ExpandField bs (Codomains fs))) ((:$:) k f (Codomains (ExpandFieldFunction bs fs))), (~) * ((:$:) k f (ExpandField bs (Domains fs))) ((:$:) k f (Domains (ExpandFieldFunction bs fs))), AdaptFieldFunction bs fs t, AdaptFieldFunction as fs t) => AdaptFieldFunction ((:) (Field *) ((:@:) * k f bs) as) fs t | |
| (GFPMTraversable n fs t, AdaptFieldFunction as fs t, (~) [*] (AppMap ((:) * ((:!:) fs n) (ExpandFieldFunction as fs)) t) ((:) * ((:!:) (Domains fs) n -> t ((:!:) (Codomains fs) n)) (AppMap (ExpandFieldFunction as fs) t))) => AdaptFieldFunction ((:) (Field *) (FP * n) as) fs t | |
| AdaptFieldFunction as fs t => AdaptFieldFunction ((:) (Field *) (FK * a) as) fs t |