CurryInfo: abstract-haskell-3.0.0 / AbstractHaskell.Goodies.renameSymbolInExpr

definition: Info
 
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: Info
 argument 2
deterministic: Info
 deterministic operation
failfree: Info
 (_, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,{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: Info
 renameSymbolInExpr
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 ((String, String) -> (String, String)) -> AbstractHaskell.Types.Expr
-> AbstractHaskell.Types.Expr
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 reducible on all ground data terms