CurryInfo: verify-non-fail-2.0.0 / Verify.WithSMT.replaceHigherOrderInExp

definition:
 
replaceHigherOrderInExp :: Expr -> Expr
replaceHigherOrderInExp =
  trExpr Var Lit updComb FC.Let Free Or Case Branch Typed
 where
  updComb ct qn args = case ct of
    FuncPartCall _ -> fcFailed
    ConsPartCall _ -> fcFailed
    FuncCall | qn == pre "apply" -> fcFailed
    _              -> Comb ct qn args
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Replace higher-order features, like occurrences of `Prelude.apply` and
partial applications, by `Prelude.failed` in an expression since they
cannot be handled by SMT. Later, occurrences of `Prelude.failed` in
SMT terms are replaced by fresh variables so that they are unspecified
values.
failfree:
 ()
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {() |-> {trExpr}}
name:
 replaceHigherOrderInExp
precedence:
 no precedence defined
result-values:
 {trExpr}
signature:
 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