-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | General data structure lifting for Template Haskell
--
-- This package provides a simple type class to use Template Haskell to
-- generate code for building data structures.
@package traverse-code
@version 0.1.1.1
module Language.Haskell.TH.TraverseCode
-- | Containers supporting "traversal" in Code.
class TraverseCode t
-- | Given a container and a function to fill it with splices, produce a
-- splice that will generate a container of their results.
traverseCode :: (TraverseCode t, Quote m) => (a -> Code m b) -> t a -> Code m (t b)
-- | Given a container and a function to fill it with splices, produce a
-- splice that will generate a container of their results.
traverseCode :: (TraverseCode t, Quote m, GTraverseCode (Rep1 t), Generic1 t) => (a -> Code m b) -> t a -> Code m (t b)
-- | Given a container of splices, produce a splice that will generate a
-- container of their results.
sequenceCode :: (TraverseCode t, Quote m) => t (Code m a) -> Code m (t a)
-- | Like traverseCode, but using the
-- Generics.Linear.Generic1 instance.
genericTraverseCode :: (Quote m, GTraverseCode (Rep1 t), Generic1 t) => (a -> Code m b) -> t a -> Code m (t b)
-- | Like sequenceCode, but using the
-- Generics.Linear.Generic1 instance.
genericSequenceCode :: (Quote m, GTraverseCode (Rep1 t), Generic1 t) => t (Code m a) -> Code m (t a)
instance (GHC.Generics.Constructor c, Language.Haskell.TH.TraverseCode.GTraverseCodeFields f) => Language.Haskell.TH.TraverseCode.GTraverseCodeCon (GHC.Generics.C1 c f)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields f => Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.S1 c f)
instance (Language.Haskell.TH.TraverseCode.GTraverseCodeFields f, Language.Haskell.TH.TraverseCode.GTraverseCodeFields g) => Language.Haskell.TH.TraverseCode.GTraverseCodeFields (f GHC.Generics.:*: g)
instance Language.Haskell.TH.Syntax.Lift p => Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.K1 i p)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields GHC.Generics.Par1
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields GHC.Generics.U1
instance (Language.Haskell.TH.TraverseCode.GTraverseCodeFields f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.GTraverseCodeFields (f Generics.Linear.Class.:.: g)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.URec GHC.Types.Char)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.URec GHC.Types.Float)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.URec GHC.Types.Double)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.URec GHC.Types.Int)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields (GHC.Generics.URec GHC.Types.Word)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeFields f => Language.Haskell.TH.TraverseCode.GTraverseCodeFields (Generics.Linear.Class.MP1 'Many f)
instance (GHC.Generics.Datatype c, Language.Haskell.TH.TraverseCode.GTraverseCodeCon f) => Language.Haskell.TH.TraverseCode.GTraverseCode (GHC.Generics.D1 c f)
instance Language.Haskell.TH.TraverseCode.GTraverseCodeCon GHC.Generics.V1
instance (Language.Haskell.TH.TraverseCode.GTraverseCodeCon f, Language.Haskell.TH.TraverseCode.GTraverseCodeCon g) => Language.Haskell.TH.TraverseCode.GTraverseCodeCon (f GHC.Generics.:+: g)
instance Language.Haskell.TH.TraverseCode.TraverseCode GHC.Maybe.Maybe
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Functor.Identity.Identity
instance Language.Haskell.TH.TraverseCode.TraverseCode []
instance Language.Haskell.TH.Syntax.Lift a => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Either.Either a)
instance Language.Haskell.TH.Syntax.Lift a => Language.Haskell.TH.TraverseCode.TraverseCode ((,) a)
instance (Language.Haskell.TH.Syntax.Lift a, Language.Haskell.TH.Syntax.Lift b) => Language.Haskell.TH.TraverseCode.TraverseCode ((,,) a b)
instance (Language.Haskell.TH.Syntax.Lift a, Language.Haskell.TH.Syntax.Lift b, Language.Haskell.TH.Syntax.Lift c) => Language.Haskell.TH.TraverseCode.TraverseCode ((,,,) a b c)
instance (Language.Haskell.TH.Syntax.Lift a, Language.Haskell.TH.Syntax.Lift b, Language.Haskell.TH.Syntax.Lift c, Language.Haskell.TH.Syntax.Lift d) => Language.Haskell.TH.TraverseCode.TraverseCode ((,,,,) a b c d)
instance (Language.Haskell.TH.Syntax.Lift a, Language.Haskell.TH.Syntax.Lift b, Language.Haskell.TH.Syntax.Lift c, Language.Haskell.TH.Syntax.Lift d, Language.Haskell.TH.Syntax.Lift e) => Language.Haskell.TH.TraverseCode.TraverseCode ((,,,,,) a b c d e)
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Functor.Product.Product f g)
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Functor.Sum.Sum f g)
instance Language.Haskell.TH.Syntax.Lift a => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Functor.Const.Const a)
instance Language.Haskell.TH.TraverseCode.TraverseCode GHC.Generics.V1
instance Language.Haskell.TH.TraverseCode.TraverseCode GHC.Generics.U1
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (f GHC.Generics.:*: g)
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (f GHC.Generics.:+: g)
instance Language.Haskell.TH.TraverseCode.TraverseCode f => Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.M1 i c f)
instance Language.Haskell.TH.TraverseCode.TraverseCode GHC.Generics.Par1
instance Language.Haskell.TH.Syntax.Lift a => Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.K1 i a)
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (f Generics.Linear.Class.:.: g)
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Functor.Compose.Compose f g)
instance Language.Haskell.TH.TraverseCode.TraverseCode f => Language.Haskell.TH.TraverseCode.TraverseCode (Generics.Linear.Class.MP1 'Many f)
instance Language.Haskell.TH.TraverseCode.TraverseCode f => Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.Rec1 f)
instance (Language.Haskell.TH.TraverseCode.TraverseCode f, Language.Haskell.TH.TraverseCode.TraverseCode g) => Language.Haskell.TH.TraverseCode.TraverseCode (f GHC.Generics.:.: g)
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.Elem
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.Digit
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.Node
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.FingerTree
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.Seq
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.ViewL
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Sequence.Internal.ViewR
instance Language.Haskell.TH.TraverseCode.TraverseCode Control.Applicative.ZipList
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Complex.Complex
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.First
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Monoid.First
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.Last
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Monoid.Last
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.Min
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.Max
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Ord.Down
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.WrappedMonoid
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.Internal.Dual
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.Internal.Product
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Semigroup.Internal.Sum
instance Language.Haskell.TH.TraverseCode.TraverseCode Solo
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Tree.Tree
instance Language.Haskell.TH.TraverseCode.TraverseCode GHC.Base.NonEmpty
instance Language.Haskell.TH.TraverseCode.TraverseCode m => Language.Haskell.TH.TraverseCode.TraverseCode (Control.Applicative.WrappedMonad m)
instance Language.Haskell.TH.TraverseCode.TraverseCode (p a) => Language.Haskell.TH.TraverseCode.TraverseCode (Control.Applicative.WrappedArrow p a)
instance Language.Haskell.TH.Syntax.Lift a => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Semigroup.Arg a)
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Proxy.Proxy
instance Language.Haskell.TH.TraverseCode.TraverseCode f => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Monoid.Ap f)
instance Language.Haskell.TH.TraverseCode.TraverseCode f => Language.Haskell.TH.TraverseCode.TraverseCode (Data.Semigroup.Internal.Alt f)
instance Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.URec GHC.Types.Char)
instance Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.URec GHC.Types.Double)
instance Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.URec GHC.Types.Float)
instance Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.URec GHC.Types.Int)
instance Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Generics.URec GHC.Types.Word)
instance (GHC.Ix.Ix i, Language.Haskell.TH.Syntax.Lift i) => Language.Haskell.TH.TraverseCode.TraverseCode (GHC.Arr.Array i)
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Primitive.Array.Array
instance Language.Haskell.TH.TraverseCode.TraverseCode Data.Primitive.SmallArray.SmallArray