Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class MTraversable f fs t | fs -> k where Source
Nothing
mtraverseP :: Applicative t => Proxy f -> Proxy fs -> Proxy t -> HList (AppMap fs t) -> (f :$: Domains fs) -> t (f :$: Codomains fs) Source
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
SequenceMap [] t = [] | |
SequenceMap (a : as) t = (t a -> a) : SequenceMap as t |
class SequenceMapId as t where Source
sequenceMapId :: Proxy as -> Proxy t -> HList (AppMap (SequenceMap as t) t) Source
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
mtraverseG :: Applicative t => Proxy fs -> HList (AppMap fs t) -> In f (Domains fs) -> t (In f (Codomains fs)) Source
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
mtraverseGF :: Applicative t => Proxy fs -> HList (AppMap fs t) -> InField f (Domains fs) -> t (InField f (Codomains fs)) Source
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
mtraverseGFP :: Applicative t => Proxy n -> Proxy fs -> HList (AppMap fs t) -> (Domains fs :!: n) -> t (Codomains fs :!: n) Source
GFPMTraversable NZ ((:) * (a -> b) as) t | |
GFPMTraversable n as t => GFPMTraversable (NS n) ((:) * (a -> b) as) t |
type family ExpandFieldFunction f ps :: [*] Source
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
adaptFieldFunction :: Applicative t => Proxy f -> Proxy fs -> Proxy t -> HList (AppMap fs t) -> HList (AppMap (ExpandFieldFunction f fs) t) Source
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 |