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 |