derive-2.0.1: A program and library to derive instances for data typesSource codeContentsIndex
Data.Derive.Internal.Traversal
Description
Derives Functor and similair classes, as discussed on the Haskell-prime mailing list: http://www.mail-archive.com/haskell-prime@haskell.org/msg02116.html.
Synopsis
data TraveralType = TraveralType {
traversalArg :: Int
traversalCo :: Bool
traversalName :: QName
traversalId :: Trav
traversalDirect :: Trav
traversalFunc :: QName -> Trav -> Trav
traversalPlus :: Trav -> Trav -> Trav
traverseArrow :: Maybe (Trav -> Trav -> Trav)
traverseTuple :: [Exp] -> Exp
traverseCtor :: String -> [Exp] -> Exp
traverseFunc :: Pat -> Exp -> Match
}
defaultTraversalType
traversalDerivation1 :: TraveralType -> String -> Derivation
traversalInstance :: TraveralType -> String -> DataDecl -> [WithInstances Decl] -> [Decl]
traversalInstance1 :: TraveralType -> String -> FullDataDecl -> Either String [Decl]
deriveTraversal :: TraveralType -> DataDecl -> WithInstances Decl
Documentation
data TraveralType Source
What kind of traversal are we deriving?
Constructors
TraveralType
traversalArg :: IntOn what position are we traversing?
traversalCo :: Boolcovariant?
traversalName :: QNamename of the traversal function
traversalId :: TravIdentity traversal
traversalDirect :: TravTraversal of a
traversalFunc :: QName -> Trav -> TravApply the sub-traversal function
traversalPlus :: Trav -> Trav -> TravApply two non-identity traversals in sequence
traverseArrow :: Maybe (Trav -> Trav -> Trav)Traverse a function type
traverseTuple :: [Exp] -> ExpConstruct a tuple from applied traversals
traverseCtor :: String -> [Exp] -> ExpConstruct a data type from applied traversals
traverseFunc :: Pat -> Exp -> MatchConstruct a clause of the traversal function
defaultTraversalType
traversalDerivation1 :: TraveralType -> String -> DerivationSource
Derivation for a Traversable like class with just 1 method
traversalInstance :: TraveralType -> String -> DataDecl -> [WithInstances Decl] -> [Decl]Source
Instance for a Traversable like class
traversalInstance1 :: TraveralType -> String -> FullDataDecl -> Either String [Decl]Source
Instance for a Traversable like class with just 1 method
deriveTraversal :: TraveralType -> DataDecl -> WithInstances DeclSource
Derive a traverse like function
Produced by Haddock version 2.4.2