|
definition: |
renameSymbolInExpr :: (QName -> QName) -> Expr -> Expr
renameSymbolInExpr ren exp = case exp of
Var _ -> exp
Lit _ -> exp
Symbol qf -> Symbol (ren qf)
Apply e1 e2 -> Apply (renameSymbolInExpr ren e1)
(renameSymbolInExpr ren e2)
InfixApply e1 op e2 -> InfixApply (renameSymbolInExpr ren e1)
(ren op)
(renameSymbolInExpr ren e2)
Lambda pats e -> Lambda (map (renameSymbolInPat ren) pats)
(renameSymbolInExpr ren e)
Let locals e -> Let (map (renameSymbolInLocal ren) locals)
(renameSymbolInExpr ren e)
DoExpr stats -> DoExpr (map (renameSymbolInStat ren) stats)
ListComp e stats -> ListComp (renameSymbolInExpr ren e)
(map (renameSymbolInStat ren) stats)
Case e branches -> Case (renameSymbolInExpr ren e)
(map (renameSymbolInBranch ren) branches)
Typed e ty -> Typed (renameSymbolInExpr ren e) ty
IfThenElse e1 e2 e3 -> IfThenElse (renameSymbolInExpr ren e1)
(renameSymbolInExpr ren e2)
(renameSymbolInExpr ren e3)
Tuple es -> Tuple (map (renameSymbolInExpr ren) es)
List es -> List (map (renameSymbolInExpr ren) es)
|
|
demand: |
argument 2 |
|
deterministic: |
deterministic operation |
|
failfree: |
(_, _) |
|
indeterministic: |
referentially transparent operation |
|
infix: |
no fixity defined |
|
iotype: |
{(_,{Var}) |-> {Var} || (_,{Lit}) |-> {Lit} || (_,{Symbol}) |-> {Symbol} || (_,{Apply}) |-> {Apply} || (_,{InfixApply}) |-> {InfixApply} || (_,{Lambda}) |-> {Lambda} || (_,{Let}) |-> {Let} || (_,{DoExpr}) |-> {DoExpr} || (_,{ListComp}) |-> {ListComp} || (_,{Case}) |-> {Case} || (_,{Typed}) |-> {Typed} || (_,{IfThenElse}) |-> {IfThenElse} || (_,{Tuple}) |-> {Tuple} || (_,{List}) |-> {List}}
|
|
name: |
renameSymbolInExpr |
|
precedence: |
no precedence defined |
|
result-values: |
_ |
|
signature: |
((String, String) -> (String, String)) -> AbstractHaskell.Types.Expr -> AbstractHaskell.Types.Expr |
|
solution-complete: |
operation might suspend on free variables |
|
terminating: |
possibly non-terminating |
|
totally-defined: |
reducible on all ground data terms |