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.
failfree:
 _
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