Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Documentation
fmapDefaultPos :: forall v f as bs. (GenericK f, GenericK f, GFunctorPos (RepK f) v as bs) => (Interpret ('Var v) as -> Interpret ('Var v) bs) -> (f :@@: as) -> f :@@: bs Source #
fmapDefault :: forall f a b. (GenericK f, GenericK f, GFunctorPos (RepK f) 'VZ (LoT1 a) (LoT1 b)) => (a -> b) -> f a -> f b Source #
bimapDefault :: forall f a c b d. (GenericK f, GenericK f, GenericK f, GFunctorPos (RepK f) 'VZ (LoT2 a d) (LoT2 c d), GFunctorPos (RepK f) ('VS 'VZ) (LoT2 a b) (LoT2 a d)) => (a -> c) -> (b -> d) -> f a b -> f c d Source #
class GFunctorPos (f :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) where Source #
Instances
GFunctorPos (U1 :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # | |
GFunctorArgPos t v as bs (ContainsTyVar v t) => GFunctorPos (Field t :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # | |
(GFunctorPos f v as bs, GFunctorPos g v as bs) => GFunctorPos (f :*: g :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # | |
(GFunctorPos f v as bs, GFunctorPos g v as bs) => GFunctorPos (f :+: g :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # | |
(Interpret c as => GFunctorPos f v as bs, z ~ Interpret c bs, Interpret c as => z) => GFunctorPos (c :=>: f :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # | |
(forall (t :: k2). GFunctorPos f ('VS v :: TyVar (k2 -> k1) Type) (t :&&: as) (t :&&: bs)) => GFunctorPos (Exists k2 f :: LoT k1 -> Type) (v :: TyVar k1 Type) (as :: LoT k1) (bs :: LoT k1) Source # | |
GFunctorPos f v as bs => GFunctorPos (M1 i c f :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # | |
class GFunctorArgPos (t :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) (p :: Bool) where Source #
gfmappf :: (Interpret ('Var v) as -> Interpret ('Var v) bs) -> Interpret t as -> Interpret t bs Source #
Instances
Interpret t as ~ Interpret t bs => GFunctorArgPos (t :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) 'False Source # | |
(TypeError ('Text "Should never get here") :: Constraint) => GFunctorArgPos ('Kon t :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) whatever Source # | |
(Functor (Interpret f as), Interpret f as ~ Interpret f bs, GFunctorArgPos x v as bs (ContainsTyVar v x)) => GFunctorArgPos (f :@: x :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) 'True Source # | |
(TypeError ('Text "Should never get here") :: Constraint) => GFunctorArgPos ('Var ('VS n :: TyVar (Type -> TYPE LiftedRep) Type) :: Atom (Type -> TYPE LiftedRep) Type) ('VZ :: TyVar (Type -> TYPE LiftedRep) Type) (r :&&: 'LoT0 :: LoT (Type -> TYPE LiftedRep)) (r :&&: 'LoT0 :: LoT (Type -> TYPE LiftedRep)) 'True Source # | |
GFunctorArgPos ('Var ('VZ :: TyVar (Type -> xs) Type) :: Atom (Type -> xs) Type) ('VZ :: TyVar (Type -> xs) Type) (a :&&: as :: LoT (Type -> xs)) (b :&&: bs :: LoT (Type -> xs)) 'True Source # | |
(TypeError ('Text "Should never get here") :: Constraint) => GFunctorArgPos ('Var ('VZ :: TyVar (Type -> xs) Type) :: Atom (Type -> xs) Type) ('VS n :: TyVar (Type -> xs) Type) (r :&&: as :: LoT (Type -> xs)) (r :&&: bs :: LoT (Type -> xs)) 'True Source # | |
GFunctorArgPos ('Var v) n as bs isthere => GFunctorArgPos ('Var ('VS v :: TyVar (x -> d) Type) :: Atom (x -> d) Type) ('VS n :: TyVar (x -> d) Type) (r :&&: as :: LoT (x -> d)) (s :&&: bs :: LoT (x -> d)) isthere Source # | |