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

definition:
allVarsInTerm :: Term -> [SVar]
allVarsInTerm (TConst _)      = []
allVarsInTerm (TSVar v)       = [v]
allVarsInTerm (TComb _ args)  = foldr union [] (map allVarsInTerm args)
allVarsInTerm (Forall vs arg) = union (map varOfSV vs) (allVarsInTerm arg)
allVarsInTerm (Exists vs arg) = union (map varOfSV vs) (allVarsInTerm arg)
allVarsInTerm (SMT.Let bs e)  =
  foldr union (map fst bs) (map allVarsInTerm (e : map snd bs))
allVarsInTerm (Match e ps)    =
  foldr union [] (map allVarsInTerm (e : map snd ps) ++ map (patVars . fst) ps)
 where
  patVars (PComb _ vs) = vs
demand:
argument 1
deterministic:
deterministic operation
documentation:
-- All variables occurring in a SMT term.
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{({TConst}) |-> {[]} || ({TSVar}) |-> {:} || ({TComb}) |-> _ || ({Forall}) |-> _ || ({Exists}) |-> _ || ({Let}) |-> _ || ({Match}) |-> _}
name:
allVarsInTerm
precedence:
no precedence defined
result-values:
_
signature:
Verify.ESMT.Term -> [Prelude.Int]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
reducible on all ground data terms