Safe Haskell | None |
---|---|
Language | Haskell2010 |
Agda.Syntax.Concrete.Generic
Contents
Description
Generic traversal and reduce for concrete syntax, in the style of Agda.Syntax.Internal.Generic.
However, here we use the terminology of Traversable
.
- class ExprLike a where
Documentation
Generic traversals for concrete expressions.
Note: does not go into patterns!
Minimal complete definition
Methods
mapExpr :: (Expr -> Expr) -> a -> a #
This corresponds to map
.
traverseExpr :: Monad m => (Expr -> m Expr) -> a -> m a #
This corresponds to mapM
.
foldExpr :: Monoid m => (Expr -> m) -> a -> m #
This is a reduce.
Instances
ExprLike Bool # | |
ExprLike QName # | |
ExprLike Name # | |
ExprLike ModuleApplication # | |
ExprLike Declaration # | |
ExprLike LHS # | |
ExprLike TypedBindings # | |
ExprLike LamBinding # | |
ExprLike Expr # | |
ExprLike ModuleAssignment # | |
ExprLike FieldAssignment # | |
ExprLike a => ExprLike [a] # | |
ExprLike a => ExprLike (Maybe a) # | |
ExprLike a => ExprLike (MaybePlaceholder a) # | |
ExprLike a => ExprLike (Arg a) # | |
ExprLike a => ExprLike (WhereClause' a) # | |
ExprLike a => ExprLike (RHS' a) # | |
ExprLike a => ExprLike (TypedBinding' a) # | |
ExprLike a => ExprLike (OpApp a) # | |
(ExprLike a, ExprLike b) => ExprLike (Either a b) # | |
(ExprLike a, ExprLike b) => ExprLike (a, b) # | |
ExprLike a => ExprLike (Named name a) # | |
(ExprLike a, ExprLike b, ExprLike c) => ExprLike (a, b, c) # | |
(ExprLike a, ExprLike b, ExprLike c, ExprLike d) => ExprLike (a, b, c, d) # | |