generic-deriving-1.14.5: Generic programming library for generalised deriving.

Safe Haskell | Safe
Language | Haskell2010

Generics.Deriving.Traversable

Contents

- Generic Traversable class
- Default method
- Internal Traversable class

Synopsis

- class (GFunctor t, GFoldable t) => GTraversable t where
  - gtraverse :: Applicative f => (a -> f b) -> t a -> f (t b)
  - gsequenceA :: Applicative f => t (f a) -> f (t a)
  - gmapM :: Monad m => (a -> m b) -> t a -> m (t b)
  - gsequence :: Monad m => t (m a) -> m (t a)
- gtraversedefault :: (Generic1 t, GTraversable' (Rep1 t), Applicative f) => (a -> f b) -> t a -> f (t b)
- class GTraversable' t where
  - gtraverse' :: Applicative f => (a -> f b) -> t a -> f (t b)

# Generic Traversable class

class (GFunctor t, GFoldable t) => GTraversable t where Source #

Minimal complete definition

Nothing

Methods

gtraverse :: Applicative f => (a -> f b) -> t a -> f (t b) Source #

default gtraverse :: (Generic1 t, GTraversable' (Rep1 t), Applicative f) => (a -> f b) -> t a -> f (t b) Source #

gsequenceA :: Applicative f => t (f a) -> f (t a) Source #

gmapM :: Monad m => (a -> m b) -> t a -> m (t b) Source #

gsequence :: Monad m => t (m a) -> m (t a) Source #

#### Instances

Instances details

GTraversable ZipList Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> ZipList a -> f (ZipList b) Source # gsequenceA :: Applicative f => ZipList (f a) -> f (ZipList a) Source # gmapM :: Monad m => (a -> m b) -> ZipList a -> m (ZipList b) Source # gsequence :: Monad m => ZipList (m a) -> m (ZipList a) Source #
GTraversable Complex Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Complex a -> f (Complex b) Source # gsequenceA :: Applicative f => Complex (f a) -> f (Complex a) Source # gmapM :: Monad m => (a -> m b) -> Complex a -> m (Complex b) Source # gsequence :: Monad m => Complex (m a) -> m (Complex a) Source #
GTraversable Identity Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Identity a -> f (Identity b) Source # gsequenceA :: Applicative f => Identity (f a) -> f (Identity a) Source # gmapM :: Monad m => (a -> m b) -> Identity a -> m (Identity b) Source # gsequence :: Monad m => Identity (m a) -> m (Identity a) Source #
GTraversable First Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> First a -> f (First b) Source # gsequenceA :: Applicative f => First (f a) -> f (First a) Source # gmapM :: Monad m => (a -> m b) -> First a -> m (First b) Source # gsequence :: Monad m => First (m a) -> m (First a) Source #
GTraversable Last Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Last a -> f (Last b) Source # gsequenceA :: Applicative f => Last (f a) -> f (Last a) Source # gmapM :: Monad m => (a -> m b) -> Last a -> m (Last b) Source # gsequence :: Monad m => Last (m a) -> m (Last a) Source #
GTraversable Down Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Down a -> f (Down b) Source # gsequenceA :: Applicative f => Down (f a) -> f (Down a) Source # gmapM :: Monad m => (a -> m b) -> Down a -> m (Down b) Source # gsequence :: Monad m => Down (m a) -> m (Down a) Source #
GTraversable First Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> First a -> f (First b) Source # gsequenceA :: Applicative f => First (f a) -> f (First a) Source # gmapM :: Monad m => (a -> m b) -> First a -> m (First b) Source # gsequence :: Monad m => First (m a) -> m (First a) Source #
GTraversable Last Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Last a -> f (Last b) Source # gsequenceA :: Applicative f => Last (f a) -> f (Last a) Source # gmapM :: Monad m => (a -> m b) -> Last a -> m (Last b) Source # gsequence :: Monad m => Last (m a) -> m (Last a) Source #
GTraversable Max Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Max a -> f (Max b) Source # gsequenceA :: Applicative f => Max (f a) -> f (Max a) Source # gmapM :: Monad m => (a -> m b) -> Max a -> m (Max b) Source # gsequence :: Monad m => Max (m a) -> m (Max a) Source #
GTraversable Min Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Min a -> f (Min b) Source # gsequenceA :: Applicative f => Min (f a) -> f (Min a) Source # gmapM :: Monad m => (a -> m b) -> Min a -> m (Min b) Source # gsequence :: Monad m => Min (m a) -> m (Min a) Source #
GTraversable WrappedMonoid Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> WrappedMonoid a -> f (WrappedMonoid b) Source # gsequenceA :: Applicative f => WrappedMonoid (f a) -> f (WrappedMonoid a) Source # gmapM :: Monad m => (a -> m b) -> WrappedMonoid a -> m (WrappedMonoid b) Source # gsequence :: Monad m => WrappedMonoid (m a) -> m (WrappedMonoid a) Source #
GTraversable Dual Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Dual a -> f (Dual b) Source # gsequenceA :: Applicative f => Dual (f a) -> f (Dual a) Source # gmapM :: Monad m => (a -> m b) -> Dual a -> m (Dual b) Source # gsequence :: Monad m => Dual (m a) -> m (Dual a) Source #
GTraversable Product Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Product a -> f (Product b) Source # gsequenceA :: Applicative f => Product (f a) -> f (Product a) Source # gmapM :: Monad m => (a -> m b) -> Product a -> m (Product b) Source # gsequence :: Monad m => Product (m a) -> m (Product a) Source #
GTraversable Sum Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Sum a -> f (Sum b) Source # gsequenceA :: Applicative f => Sum (f a) -> f (Sum a) Source # gmapM :: Monad m => (a -> m b) -> Sum a -> m (Sum b) Source # gsequence :: Monad m => Sum (m a) -> m (Sum a) Source #
GTraversable NonEmpty Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> NonEmpty a -> f (NonEmpty b) Source # gsequenceA :: Applicative f => NonEmpty (f a) -> f (NonEmpty a) Source # gmapM :: Monad m => (a -> m b) -> NonEmpty a -> m (NonEmpty b) Source # gsequence :: Monad m => NonEmpty (m a) -> m (NonEmpty a) Source #
GTraversable Maybe Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Maybe a -> f (Maybe b) Source # gsequenceA :: Applicative f => Maybe (f a) -> f (Maybe a) Source # gmapM :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) Source # gsequence :: Monad m => Maybe (m a) -> m (Maybe a) Source #
GTraversable [] Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> [a] -> f [b] Source # gsequenceA :: Applicative f => [f a] -> f [a] Source # gmapM :: Monad m => (a -> m b) -> [a] -> m [b] Source # gsequence :: Monad m => [m a] -> m [a] Source #
GTraversable (Either a) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a0 -> f b) -> Either a a0 -> f (Either a b) Source # gsequenceA :: Applicative f => Either a (f a0) -> f (Either a a0) Source # gmapM :: Monad m => (a0 -> m b) -> Either a a0 -> m (Either a b) Source # gsequence :: Monad m => Either a (m a0) -> m (Either a a0) Source #
GTraversable (Proxy :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Proxy a -> f (Proxy b) Source # gsequenceA :: Applicative f => Proxy (f a) -> f (Proxy a) Source # gmapM :: Monad m => (a -> m b) -> Proxy a -> m (Proxy b) Source # gsequence :: Monad m => Proxy (m a) -> m (Proxy a) Source #
GTraversable (Arg a) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a0 -> f b) -> Arg a a0 -> f (Arg a b) Source # gsequenceA :: Applicative f => Arg a (f a0) -> f (Arg a a0) Source # gmapM :: Monad m => (a0 -> m b) -> Arg a a0 -> m (Arg a b) Source # gsequence :: Monad m => Arg a (m a0) -> m (Arg a a0) Source #
(Generic1 t, GFunctor' (Rep1 t), GFoldable' (Rep1 t), GTraversable' (Rep1 t)) => GTraversable (Default1 t) Source # |
Instance details Defined in Generics.Deriving.Default Methods gtraverse :: Applicative f => (a -> f b) -> Default1 t a -> f (Default1 t b) Source # gsequenceA :: Applicative f => Default1 t (f a) -> f (Default1 t a) Source # gmapM :: Monad m => (a -> m b) -> Default1 t a -> m (Default1 t b) Source # gsequence :: Monad m => Default1 t (m a) -> m (Default1 t a) Source #
GTraversable ((,) a) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a0 -> f b) -> (a, a0) -> f (a, b) Source # gsequenceA :: Applicative f => (a, f a0) -> f (a, a0) Source # gmapM :: Monad m => (a0 -> m b) -> (a, a0) -> m (a, b) Source # gsequence :: Monad m => (a, m a0) -> m (a, a0) Source #
GTraversable (Const m :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f => (a -> f b) -> Const m a -> f (Const m b) Source # gsequenceA :: Applicative f => Const m (f a) -> f (Const m a) Source # gmapM :: Monad m0 => (a -> m0 b) -> Const m a -> m0 (Const m b) Source # gsequence :: Monad m0 => Const m (m0 a) -> m0 (Const m a) Source #
(GTraversable f, GTraversable g) => GTraversable (Product f g) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f0 => (a -> f0 b) -> Product f g a -> f0 (Product f g b) Source # gsequenceA :: Applicative f0 => Product f g (f0 a) -> f0 (Product f g a) Source # gmapM :: Monad m => (a -> m b) -> Product f g a -> m (Product f g b) Source # gsequence :: Monad m => Product f g (m a) -> m (Product f g a) Source #
(GTraversable f, GTraversable g) => GTraversable (Sum f g) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse :: Applicative f0 => (a -> f0 b) -> Sum f g a -> f0 (Sum f g b) Source # gsequenceA :: Applicative f0 => Sum f g (f0 a) -> f0 (Sum f g a) Source # gmapM :: Monad m => (a -> m b) -> Sum f g a -> m (Sum f g b) Source # gsequence :: Monad m => Sum f g (m a) -> m (Sum f g a) Source #

# Default method

gtraversedefault :: (Generic1 t, GTraversable' (Rep1 t), Applicative f) => (a -> f b) -> t a -> f (t b) Source #

# Internal Traversable class

class GTraversable' t where Source #

Methods

gtraverse' :: Applicative f => (a -> f b) -> t a -> f (t b) Source #

#### Instances

Instances details

GTraversable' Par1 Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> Par1 a -> f (Par1 b) Source #
GTraversable' (U1 :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> U1 a -> f (U1 b) Source #
GTraversable' (UAddr :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> UAddr a -> f (UAddr b) Source #
GTraversable' (UChar :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> UChar a -> f (UChar b) Source #
GTraversable' (UDouble :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> UDouble a -> f (UDouble b) Source #
GTraversable' (UFloat :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> UFloat a -> f (UFloat b) Source #
GTraversable' (UInt :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> UInt a -> f (UInt b) Source #
GTraversable' (UWord :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> UWord a -> f (UWord b) Source #
GTraversable' (V1 :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> V1 a -> f (V1 b) Source #
GTraversable f => GTraversable' (Rec1 f) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f0 => (a -> f0 b) -> Rec1 f a -> f0 (Rec1 f b) Source #
(GTraversable' f, GTraversable' g) => GTraversable' (f :*: g) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f0 => (a -> f0 b) -> (f :*: g) a -> f0 ((f :*: g) b) Source #
(GTraversable' f, GTraversable' g) => GTraversable' (f :+: g) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f0 => (a -> f0 b) -> (f :+: g) a -> f0 ((f :+: g) b) Source #
GTraversable' (K1 i c :: Type -> Type) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f => (a -> f b) -> K1 i c a -> f (K1 i c b) Source #
(GTraversable f, GTraversable' g) => GTraversable' (f :.: g) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f0 => (a -> f0 b) -> (f :.: g) a -> f0 ((f :.: g) b) Source #
GTraversable' f => GTraversable' (M1 i c f) Source # |
Instance details Defined in Generics.Deriving.Traversable Methods gtraverse' :: Applicative f0 => (a -> f0 b) -> M1 i c f a -> f0 (M1 i c f b) Source #