Type substitutions on type-annotated AnnotatedFlatCurry
Author: Bjoern Peemoeller
Version: December 2020
showAFCSubst
:: Map Int TypeExpr -> String |
emptyAFCSubst
:: Map Int TypeExpr The empty substitution |
lookupAFCSubst
:: Map Int TypeExpr -> Int -> Maybe TypeExpr Searches the substitution for a mapping from the given variable index to a term. |
substFunc
:: Map Int TypeExpr -> AFuncDecl TypeExpr -> AFuncDecl TypeExpr Applies a substitution to a function. |
substRule
:: Map Int TypeExpr -> ARule TypeExpr -> ARule TypeExpr Applies a substitution to a type expression. |
substExpr
:: Map Int TypeExpr -> AExpr TypeExpr -> AExpr TypeExpr Applies a substitution to a type expression. |
substSnd
:: Map Int TypeExpr -> (a,TypeExpr) -> (a,TypeExpr) |
substBranch
:: Map Int TypeExpr -> ABranchExpr TypeExpr -> ABranchExpr TypeExpr Applies a substitution to a branch expression. |
substPattern
:: Map Int TypeExpr -> APattern TypeExpr -> APattern TypeExpr Applies a substitution to a pattern. |
subst
:: Map Int TypeExpr -> TypeExpr -> TypeExpr Looks up a type in a substitution and converts the resulting Term to a TypeExpr. |
The (abstract) data type for substitutions on TypeExpr.
Type synonym: AFCSubst = Map TVarIndex TypeExpr
|
The empty substitution
|
Searches the substitution for a mapping from the given variable index to a term.
|
Applies a substitution to a function.
|
Applies a substitution to a type expression.
|
Applies a substitution to a type expression.
|
Applies a substitution to a branch expression.
|
Applies a substitution to a pattern.
|
Looks up a type in a substitution and converts the resulting Term to a TypeExpr. Returns a given default value if the lookup fails.
|