-- 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 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 (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.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 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