| traversalArg :: Int | On what position are we traversing?
|
| traversalCo :: Bool | covariant?
|
| traversalName :: String | name of the traversal function
|
| traversalId :: Trav | Identity traversal
|
| traversalDirect :: Trav | Traversal of a
|
| traversalFunc :: String -> Trav -> Trav | Apply the sub-traversal function
|
| traversalPlus :: Trav -> Trav -> Trav | Apply two non-identity traversals in sequence
|
| traverseArrow :: Trav -> Trav -> Trav | Traverse a function type
|
| traverseTuple :: [Exp] -> Exp | Construct a tuple from applied traversals
|
| traverseCtor :: String -> [Exp] -> Exp | Construct a data type from applied traversals
|
| traverseFunc :: Pat -> Exp -> Clause | Construct a clause of the traversal function
|