| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.MFunctor
Documentation
Instances
| MFunctor * Bool ([] *) ([] Variance) | |
| MFunctor * Ordering ([] *) ([] Variance) | |
| MFunctor * () ([] *) ([] Variance) | |
| AdaptFieldFunction ([] (Field *)) ([] Variance) ps vs | |
| GFPMFunctor [Variance] n as vs => GFPMFunctor [Variance] (NS n) ((:) * (a -> b) as) ((:) Variance ContraV vs) | |
| GFPMFunctor [Variance] n as vs => GFPMFunctor [Variance] (NS n) ((:) * (a -> b) as) ((:) Variance CoV vs) | |
| MFunctor (* -> * -> * -> * -> * -> * -> * -> * -> * -> *) (,,,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ((:) * (h -> h') ((:) * (i -> i') ([] *)))))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))))))))) | |
| MFunctor (* -> * -> * -> * -> * -> * -> * -> * -> *) (,,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ((:) * (h -> h') ([] *))))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance))))))))) | |
| MFunctor (* -> * -> * -> * -> * -> * -> * -> *) (,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ([] *)))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))))))) | |
| MFunctor (* -> * -> * -> * -> * -> * -> *) (,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ([] *))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance))))))) | |
| MFunctor (* -> * -> * -> * -> * -> *) (,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ([] *)))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))))) | |
| MFunctor (* -> * -> * -> * -> *) (,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ([] *))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance))))) | |
| MFunctor (* -> * -> * -> *) (,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ([] *)))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))) | |
| MFunctor (* -> * -> *) (->) ((:) * (a' -> a) ((:) * (b -> b') ([] *))) ((:) Variance ContraV ((:) Variance CoV ([] Variance))) | |
| MFunctor (* -> * -> *) Either ((:) * (a -> a') ((:) * (b -> b') ([] *))) ((:) Variance CoV ((:) Variance CoV ([] Variance))) | |
| MFunctor (* -> * -> *) (,) ((:) * (a -> a') ((:) * (b -> b') ([] *))) ((:) Variance CoV ((:) Variance CoV ([] Variance))) | |
| MFunctor (* -> *) [] ((:) * (a -> a') ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Sum ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Product ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) First ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Last ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Maybe ((:) * (a -> a') ([] *)) ((:) Variance CoV ([] Variance)) | |
| (MFunctor k f (ExpandFieldFunction bs (FlipVariance vs') ps vs) vs', (~) [*] (ExpandField bs (Domains ps vs)) (Codomains (ExpandFieldFunction bs (FlipVariance vs') ps vs) vs'), (~) [*] (ExpandField bs (Codomains ps vs)) (Domains (ExpandFieldFunction bs (FlipVariance vs') ps vs) vs'), AdaptFieldFunction bs (FlipVariance vs') ps vs, AdaptFieldFunction as vfs ps vs) => AdaptFieldFunction ((:) (Field *) ((:@:) * k f bs) as) ((:) Variance ContraV vfs) ps vs | |
| (MFunctor k f (ExpandFieldFunction bs vs' ps vs) vs', (~) [*] (ExpandField bs (Codomains ps vs)) (Codomains (ExpandFieldFunction bs vs' ps vs) vs'), (~) [*] (ExpandField bs (Domains ps vs)) (Domains (ExpandFieldFunction bs vs' ps vs) vs'), AdaptFieldFunction bs vs' ps vs, AdaptFieldFunction as vfs ps vs) => AdaptFieldFunction ((:) (Field *) ((:@:) * k f bs) as) ((:) Variance CoV vfs) ps vs | |
| (GFPMFunctor [Variance] n ps vs, AdaptFieldFunction as vfs ps vs, (~) * (Flip ((:!:) ps n)) ((:!:) (Domains ps vs) n -> (:!:) (Codomains ps vs) n)) => AdaptFieldFunction ((:) (Field *) (FP * n) as) ((:) Variance ContraV vfs) ps vs | |
| (GFPMFunctor [Variance] n ps vs, AdaptFieldFunction as vfs ps vs, (~) * ((:!:) ps n) ((:!:) (Domains ps vs) n -> (:!:) (Codomains ps vs) n)) => AdaptFieldFunction ((:) (Field *) (FP * n) as) ((:) Variance CoV vfs) ps vs | |
| AdaptFieldFunction as vfs ps vs => AdaptFieldFunction ((:) (Field *) (FK * a) as) ((:) Variance v vfs) ps vs |
class MFunctor f fs vs | f -> vs, fs -> k, vs -> k where Source
Minimal complete definition
Nothing
Methods
mmapP :: Proxy f -> Proxy vs -> HList fs -> (f :$: Domains fs vs) -> f :$: Codomains fs vs Source
Instances
| MFunctor * Bool ([] *) ([] Variance) | |
| MFunctor * Ordering ([] *) ([] Variance) | |
| MFunctor * () ([] *) ([] Variance) | |
| MFunctor (* -> * -> * -> * -> * -> * -> * -> * -> * -> *) (,,,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ((:) * (h -> h') ((:) * (i -> i') ([] *)))))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))))))))) | |
| MFunctor (* -> * -> * -> * -> * -> * -> * -> * -> *) (,,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ((:) * (h -> h') ([] *))))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance))))))))) | |
| MFunctor (* -> * -> * -> * -> * -> * -> * -> *) (,,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ((:) * (g -> g') ([] *)))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))))))) | |
| MFunctor (* -> * -> * -> * -> * -> * -> *) (,,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ((:) * (f -> f') ([] *))))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance))))))) | |
| MFunctor (* -> * -> * -> * -> * -> *) (,,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ((:) * (e -> e') ([] *)))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))))) | |
| MFunctor (* -> * -> * -> * -> *) (,,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ((:) * (d -> d') ([] *))))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance))))) | |
| MFunctor (* -> * -> * -> *) (,,) ((:) * (a -> a') ((:) * (b -> b') ((:) * (c -> c') ([] *)))) ((:) Variance CoV ((:) Variance CoV ((:) Variance CoV ([] Variance)))) | |
| MFunctor (* -> * -> *) (->) ((:) * (a' -> a) ((:) * (b -> b') ([] *))) ((:) Variance ContraV ((:) Variance CoV ([] Variance))) | |
| MFunctor (* -> * -> *) Either ((:) * (a -> a') ((:) * (b -> b') ([] *))) ((:) Variance CoV ((:) Variance CoV ([] Variance))) | |
| MFunctor (* -> * -> *) (,) ((:) * (a -> a') ((:) * (b -> b') ([] *))) ((:) Variance CoV ((:) Variance CoV ([] Variance))) | |
| MFunctor (* -> *) [] ((:) * (a -> a') ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Sum ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Product ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) First ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Last ((:) * (a -> b) ([] *)) ((:) Variance CoV ([] Variance)) | |
| MFunctor (* -> *) Maybe ((:) * (a -> a') ([] *)) ((:) Variance CoV ([] Variance)) |
mmap :: forall a b f fs vs. (Unapply a f (Domains fs vs), Unapply b f (Codomains fs vs), MFunctor f fs vs) => HList fs -> a -> b Source
class GFMFunctor f fs vs where Source
Methods
mmapGF :: Proxy vs -> HList fs -> InField f (Domains fs vs) -> InField f (Codomains fs vs) Source
Instances
| (GFPMFunctor [Variance] n fs vs, (~) * ((:!:) fs n) ((:!:) (Domains fs vs) n -> (:!:) (Codomains fs vs) n)) => GFMFunctor (FP * n) fs vs | |
| GFMFunctor (FK * a) fs vs | |
| (MFunctor k f (ExpandFieldFunction as vs' ps vs) vs', (~) [*] (ExpandField as (Codomains ps vs)) (Codomains (ExpandFieldFunction as vs' ps vs) vs'), (~) [*] (ExpandField as (Domains ps vs)) (Domains (ExpandFieldFunction as vs' ps vs) vs'), AdaptFieldFunction as vs' ps vs) => GFMFunctor ((:@:) * k f as) ps vs |
class GFPMFunctor n fs vs where Source
Instances
| GFPMFunctor [k] NZ ((:) * (a -> b) as) ((:) k v vs) | |
| GFPMFunctor [Variance] n as vs => GFPMFunctor [Variance] (NS n) ((:) * (a -> b) as) ((:) Variance ContraV vs) | |
| GFPMFunctor [Variance] n as vs => GFPMFunctor [Variance] (NS n) ((:) * (a -> b) as) ((:) Variance CoV vs) |
type family ExpandFieldFunction f vfs ps vs :: [*] Source
Equations
| ExpandFieldFunction [] [] ps vs = [] | |
| ExpandFieldFunction (FK a : fs) (v : vfs) ps vs = (a -> a) : ExpandFieldFunction fs vfs ps vs | |
| ExpandFieldFunction (FP n : fs) (CoV : vfs) ps vs = (ps :!: n) : ExpandFieldFunction fs vfs ps vs | |
| ExpandFieldFunction (FP n : fs) (ContraV : vfs) ps vs = (ps :!: n) : ExpandFieldFunction fs vfs ps vs | |
| ExpandFieldFunction ((f :@: as) : fs) (CoV : vfs) ps vs = ((f :$: ExpandField as (Domains ps vs)) -> f :$: ExpandField as (Codomains ps vs)) : ExpandFieldFunction fs vfs ps vs | |
| ExpandFieldFunction ((f :@: as) : fs) (ContraV : vfs) ps vs = ((f :$: ExpandField as (Codomains ps vs)) -> f :$: ExpandField as (Domains ps vs)) : ExpandFieldFunction fs vfs ps vs |
class AdaptFieldFunction f vfs ps vs where Source
Methods
adaptFieldFunction :: Proxy f -> Proxy vfs -> Proxy vs -> HList ps -> HList (ExpandFieldFunction f vfs ps vs) Source
Instances
type family FlipVariance vs Source
Equations
| FlipVariance [] = [] | |
| FlipVariance (CoV : vs) = ContraV : FlipVariance vs | |
| FlipVariance (ContraV : vs) = CoV : FlipVariance vs |