kind-generics-deriving-0.3.0.0: Generic programming in GHC style for arbitrary kinds and GADTs.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Generics.Kind.Derive.Traversable

Documentation

traverseDefaultPos :: forall v f as bs g. (GenericK f, GenericK f, GTraversable (RepK f) v as bs, Applicative g) => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> (f :@@: as) -> g (f :@@: bs) Source #

traverseDefault :: forall f a b g. (GenericK f, GenericK f, GTraversable (RepK f) 'VZ (LoT1 a) (LoT1 b), Applicative g) => (a -> g b) -> f a -> g (f b) Source #

class GTraversable (f :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) where Source #

Methods

gtraverse :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> f as -> g (f bs) Source #

Instances

Instances details
GTraversable (U1 :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> U1 as -> g (U1 bs) Source #

GTraversableArg t v as bs (ContainsTyVar v t) => GTraversable (Field t :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> Field t as -> g (Field t bs) Source #

(GTraversable f v as bs, GTraversable g v as bs) => GTraversable (f :*: g :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g0 => (Interpret ('Var v) as -> g0 (Interpret ('Var v) bs)) -> (f :*: g) as -> g0 ((f :*: g) bs) Source #

(GTraversable f v as bs, GTraversable g v as bs) => GTraversable (f :+: g :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g0 => (Interpret ('Var v) as -> g0 (Interpret ('Var v) bs)) -> (f :+: g) as -> g0 ((f :+: g) bs) Source #

(Interpret c as => GTraversable f v as bs, z ~ Interpret c bs, Interpret c as => z) => GTraversable (c :=>: f :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> (c :=>: f) as -> g ((c :=>: f) bs) Source #

(forall (t :: k2). GTraversable f ('VS v :: TyVar (k2 -> k1) Type) (t :&&: as) (t :&&: bs)) => GTraversable (Exists k2 f :: LoT k1 -> Type) (v :: TyVar k1 Type) (as :: LoT k1) (bs :: LoT k1) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> Exists k2 f as -> g (Exists k2 f bs) Source #

GTraversable f v as bs => GTraversable (M1 i c f :: LoT k -> Type) (v :: TyVar k Type) (as :: LoT k) (bs :: LoT k) Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraverse :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> M1 i c f as -> g (M1 i c f bs) Source #

class GTraversableArg (t :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) (p :: Bool) where Source #

Methods

gtraversef :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> Interpret t as -> g (Interpret t bs) Source #

Instances

Instances details
Interpret t as ~ Interpret t bs => GTraversableArg (t :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) 'False Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraversef :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> Interpret t as -> g (Interpret t bs) Source #

(TypeError ('Text "Should never get here") :: Constraint) => GTraversableArg ('Kon t :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) whatever Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraversef :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> Interpret ('Kon t) as -> g (Interpret ('Kon t) bs) Source #

(Traversable (Interpret f as), Interpret f as ~ Interpret f bs, GTraversableArg x v as bs (ContainsTyVar v x)) => GTraversableArg (f :@: x :: Atom d Type) (v :: TyVar d Type) (as :: LoT d) (bs :: LoT d) 'True Source # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraversef :: Applicative g => (Interpret ('Var v) as -> g (Interpret ('Var v) bs)) -> Interpret (f :@: x) as -> g (Interpret (f :@: x) bs) Source #

GTraversableArg ('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 # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraversef :: Applicative g => (Interpret ('Var 'VZ) (a :&&: as) -> g (Interpret ('Var 'VZ) (b :&&: bs))) -> Interpret ('Var 'VZ) (a :&&: as) -> g (Interpret ('Var 'VZ) (b :&&: bs)) Source #

(TypeError ('Text "Should never get here") :: Constraint) => GTraversableArg ('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 # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraversef :: Applicative g => (Interpret ('Var ('VS n)) (r :&&: as) -> g (Interpret ('Var ('VS n)) (r :&&: bs))) -> Interpret ('Var 'VZ) (r :&&: as) -> g (Interpret ('Var 'VZ) (r :&&: bs)) Source #

GTraversableArg ('Var v) n as bs isthere => GTraversableArg ('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 # 
Instance details

Defined in Generics.Kind.Derive.Traversable

Methods

gtraversef :: Applicative g => (Interpret ('Var ('VS n)) (r :&&: as) -> g (Interpret ('Var ('VS n)) (s :&&: bs))) -> Interpret ('Var ('VS v)) (r :&&: as) -> g (Interpret ('Var ('VS v)) (s :&&: bs)) Source #