Copyright | (c) Wolfgang Lux 2011 - 2015 Björn Peemöller 2015 Jan Tikovsky 2016 Finn Teegen |
---|---|
License | BSD-3-clause |
Maintainer | bjp@informatik.uni-kiel.de |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
The compiler needs to compute the lists of free and bound variables for
various different entities. We will devote three type classes to that
purpose. The QualExpr
class is expected to take into account
that it is possible to use a qualified name to refer to a function
defined in the current module and therefore M.x
and x
, where
M
is the current module name, should be considered the same name.
However, note that this is correct only after renaming all local
definitions as M.x
always denotes an entity defined at the
top-level.
Documentation
class QualExpr e where Source #
Instances
QualExpr e => QualExpr [e] Source # | |
QualExpr (Decl a) Source # | |
QualExpr (Equation a) Source # | |
QualExpr (Lhs a) Source # | |
QualExpr (Rhs a) Source # | |
QualExpr (CondExpr a) Source # | |
QualExpr (Pattern a) Source # | |
QualExpr (Expression a) Source # | |
Defined in Base.Expr qfv :: ModuleIdent -> Expression a -> [Ident] Source # | |
QualExpr (InfixOp a) Source # | |
QualExpr (Statement a) Source # | |
QualExpr (Alt a) Source # | |
QualExpr a => QualExpr (Field a) Source # | |
class QuantExpr e where Source #
Instances
QuantExpr TypeExpr Source # | |
QuantExpr QualTypeExpr Source # | |
QuantExpr Constraint Source # | |
QuantExpr e => QuantExpr [e] Source # | |
QuantExpr (Decl a) Source # | |
QuantExpr (Lhs a) Source # | |
QuantExpr (Pattern a) Source # | |
QuantExpr (Statement a) Source # | |
QuantExpr a => QuantExpr (Field a) Source # | |
QuantExpr (Var a) Source # | |