CurryInfo: verify-non-fail-2.0.0 / Verify.NonFailConditions.expandExpr

definition:
 
expandExpr :: [(Int,TypeExpr,Expr)] -> Expr -> Expr
expandExpr bs = updVars updvar
 where
  updvar v = maybe (Var v)
                   (\(_,_,e) -> if e == Var v then e else expandExpr bs e)
                   (find (\(v',_,_) -> v' == v) bs)
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
---------------------------------------------------------------------------
Replace all variables in a FlatCurry expression by their bindings
passed as a mapping from variables to expressions.
failfree:
 _
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_) |-> {trExpr}}
name:
 expandExpr
precedence:
 no precedence defined
result-values:
 {trExpr}
signature:
 [(Prelude.Int, FlatCurry.Types.TypeExpr, FlatCurry.Types.Expr)]
-> FlatCurry.Types.Expr -> FlatCurry.Types.Expr
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 reducible on all ground data terms