derive-0.1.4: A program and library to derive instances for data typesSource codeContentsIndex
Data.DeriveTraversal
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 nm = TraveralType {
traversalArg :: Int
traversalCo :: Bool
traversalName :: nm
traversalId :: Trav
traversalDirect :: Trav
traversalFunc :: Name -> Trav -> Trav
traversalPlus :: Trav -> Trav -> Trav
traverseArrow :: Trav -> Trav -> Trav
traverseTuple :: [Exp] -> Exp
traverseCtor :: String -> [Exp] -> Exp
traverseFunc :: Pat -> Exp -> Clause
}
defaultTraversalType
traversalDerivation1 :: NameLike nm => TraveralType nm -> String -> Derivation
traversalInstance :: NameLike nm => TraveralType nm -> String -> DataDef -> [WithInstances Dec] -> [Dec]
traversalInstance1 :: NameLike nm => TraveralType nm -> String -> DataDef -> [Dec]
deriveTraversal :: NameLike nm => TraveralType nm -> DataDef -> WithInstances Dec
Documentation
data TraveralType nm Source
What kind of traversal are we deriving?
Constructors
TraveralType
traversalArg :: IntOn what position are we traversing?
traversalCo :: Boolcovariant?
traversalName :: nmname of the traversal function
traversalId :: TravIdentity traversal
traversalDirect :: TravTraversal of a
traversalFunc :: Name -> Trav -> TravApply the sub-traversal function
traversalPlus :: Trav -> Trav -> TravApply two non-identity traversals in sequence
traverseArrow :: Trav -> Trav -> TravTraverse a function type
traverseTuple :: [Exp] -> ExpConstruct a tuple from applied traversals
traverseCtor :: String -> [Exp] -> ExpConstruct a data type from applied traversals
traverseFunc :: Pat -> Exp -> ClauseConstruct a clause of the traversal function
defaultTraversalType
traversalDerivation1 :: NameLike nm => TraveralType nm -> String -> DerivationSource
Derivation for a Traversable like class with just 1 method
traversalInstance :: NameLike nm => TraveralType nm -> String -> DataDef -> [WithInstances Dec] -> [Dec]Source
Instance for a Traversable like class
traversalInstance1 :: NameLike nm => TraveralType nm -> String -> DataDef -> [Dec]Source
Instance for a Traversable like class with just 1 method
deriveTraversal :: NameLike nm => TraveralType nm -> DataDef -> WithInstances DecSource
Derive a traverse like function
Produced by Haddock version 2.4.2