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 # | |
(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 # | |
(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 LiftedRep)) 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 LiftedRep)) 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 LiftedRep)) 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 LiftedRep)) 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 # | |