Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Documentation
kfmapDefault :: forall k (f :: k) v as bs. (GenericK f, GenericK f, GFunctor (RepK f) v as bs) => Mappings v as bs -> (f :@@: as) -> f :@@: bs Source #
fmapDefault' :: forall (f :: Type -> Type) a b. (GenericK f, GenericK f, GFunctor (RepK f) '['Co] (a ':&&: 'LoT0) (b ':&&: 'LoT0)) => (a -> b) -> f a -> f b Source #
class GFunctor (f :: LoT k -> Type) (v :: Variances) (as :: LoT k) (bs :: LoT k) where Source #
Instances
GFunctor (U1 :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
GFunctorArg t v 'Co as bs => GFunctor (Field t :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
Defined in Generics.Kind.Derive.KFunctor | |
(GFunctor f v as bs, GFunctor g v as bs) => GFunctor (f :*: g :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
(GFunctor f v as bs, GFunctor g v as bs) => GFunctor (f :+: g :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
(Interpret c as => GFunctor f v as bs, Interpret c bs) => GFunctor (c :=>: f :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
Defined in Generics.Kind.Derive.KFunctor | |
(forall t. GFunctor f ('Co ': v) (t ':&&: as) (t ':&&: bs)) => GFunctor (Exists Type f :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
GFunctor f v as bs => GFunctor (M1 i c f :: LoT k -> Type) v (as :: LoT k) (bs :: LoT k) Source # | |
class GFunctorArg (t :: Atom d Type) (v :: Variances) (intended :: Variance) (as :: LoT d) (bs :: LoT d) where Source #
gfmapf :: Proxy t -> Proxy intended -> Mappings v as bs -> Mapping intended (Interpret t as) (Interpret t bs) Source #
Instances
(forall t. GFunctorArg f ('Co ': v) 'Co (t ':&&: as) (t ':&&: bs)) => GFunctorArg ('ForAll f :: Atom d Type) v 'Co (as :: LoT d) (bs :: LoT d) Source # | |
GFunctorArg ('Kon t :: Atom d Type) v 'Co (as :: LoT d) (bs :: LoT d) Source # | |
GFunctorArg ('Kon t :: Atom d Type) v 'Contra (as :: LoT d) (bs :: LoT d) Source # | |
(KFunctor f '[v1] (Interpret x as ':&&: 'LoT0) (Interpret x bs ':&&: 'LoT0), GFunctorArg x v v1 as bs) => GFunctorArg (f :$: x :: Atom d Type) v 'Co (as :: LoT d) (bs :: LoT d) Source # | |
(KFunctor f '[v1, v2] (Interpret x as ':&&: (Interpret y as ':&&: 'LoT0)) (Interpret x bs ':&&: (Interpret y bs ':&&: 'LoT0)), GFunctorArg x v v1 as bs, GFunctorArg y v v2 as bs) => GFunctorArg ((f :$: x) ':@: y :: Atom d Type) v 'Co (as :: LoT d) (bs :: LoT d) Source # | |
(KFunctor f '[v1, v2, v3] (Interpret x as ':&&: (Interpret y as ':&&: (Interpret z as ':&&: 'LoT0))) (Interpret x bs ':&&: (Interpret y bs ':&&: (Interpret z bs ':&&: 'LoT0))), GFunctorArg x v v1 as bs, GFunctorArg y v v2 as bs, GFunctorArg z v v3 as bs) => GFunctorArg (((f :$: x) ':@: y) ':@: z :: Atom d Type) v 'Co (as :: LoT d) (bs :: LoT d) Source # | |
GFunctorArg ('Var ('VZ :: TyVar (Type -> xs) Type) :: Atom (Type -> xs) Type) (r ': v) r (a ':&&: as :: LoT (Type -> xs)) (b ':&&: bs :: LoT (Type -> xs)) Source # | |
GFunctorArg ('Var vr) v intended as bs => GFunctorArg ('Var ('VS vr :: TyVar (x -> ks) Type) :: Atom (x -> ks) Type) (pre ': v) intended (a ':&&: as :: LoT (x -> ks)) (b ':&&: bs :: LoT (x -> ks)) Source # | |