|
|
|
|
|
|
| Synopsis |
|
|
|
| Documentation |
|
| newtype Variable |
| A string used for a variable name.
Names starting with '!' are reserved for internal use. | | Constructors | | | Instances | |
|
|
| newtype Head |
| A string used for a term head name. | | Constructors | | | Instances | |
|
|
| newtype Label |
| A string used for a label name (includes the '@').
Names starting with "@!" are reserved for internal use. | | Constructors | | | Instances | |
|
|
| data Term |
Terms. We often use the following definitions:
- depth
- The maximum number of App nestings in a Term. Note that
foo, foo(X), and foo(@lab) have depth one, while foo(bar)
has depth two, and X and @lab have depth zero.
- ground term
- A term without variables.
- simple term
- A term without labels.
- pure term
- A simple ground term.
- plain term
- A ground term of depth <= 1.
| | Constructors | | | Instances | |
|
|
| data Loc |
| Locations. | | Constructors | | | Instances | |
|
|
| data Clause |
| A Clause is meant to be a pattern for matching Terms beloging to
a Grammar. | | Constructors | |
|
|
| data Rule |
| The Rules define the Term rewriting system. The implied meaning is
"whenever the left hand side has a match in the Grammar,
add the right hand side to the Grammar". | | Constructors | |
|
|
| data Intersection |
| A special IntersectionRule, defining a Label set as the intersection
of two sets. This could be modeled by a set of Rules, once for each
term head. See also intersect. | | Constructors | |
|
|
| Special Constants |
|
| intersectionLabel :: Label |
| A Label whose set over-approximates the intersection between sets.
This is used internally: see also computeIntersection. |
|
| intersectionHead :: Head |
| A Head that is used in the set of intersectionLabel in order to
over-approximate the intersection between sets.
This is used internally: see also computeIntersection. |
|
| resultLabel :: Label |
| A Label where is stored the result fo the analisys, by convention. |
|
| resultHead :: Head |
| A flag that, if present in resultLabel, tells the analysis failed. |
|
| simpleLoc :: Loc |
| The Location implied in a SimpleRule. |
|
| Substitutions |
|
| newtype Subst |
|
|
| applySubstTerm :: Subst -> Term -> Term |
|
| applySubst :: Subst -> Clause -> Clause |
| Apply Subst to a Clause. The Location in the result must be a
Label. |
|
| Utilities |
|
| isPlain :: Term -> Bool |
|
| succHead :: Head -> Head |
|
| Pretty Printing |
|
| pprTerm :: Term -> String |
| Pretty print a Term. |
|
| pprTerms :: [Term] -> String |
|
| pprClause :: Clause -> String |
| Pretty print a Clause. |
|
| pprClauses :: [Clause] -> String |
|
| pprRule :: Rule -> String |
| Pretty print a Rule. |
|
| pprGeneralRule :: Rule -> String |
| Pretty print SimpleRules and FullRules , using
user-friendly syntax. |
|
| Produced by Haddock version 0.6 |