CurryInfo: contract-prover-4.0.0 / ESMT.sortsOfTerm

definition:
sortsOfTerm :: Term -> [Sort]
sortsOfTerm (TConst _) = []
sortsOfTerm (TSVar  _) = []
sortsOfTerm (Let bs t) = concatMap (sortsOfTerm . snd) bs ++ sortsOfTerm t
sortsOfTerm (Forall vs t) = map sortOfSortedVar vs ++ sortsOfTerm t
sortsOfTerm (Exists vs t) = map sortOfSortedVar vs ++ sortsOfTerm t
sortsOfTerm (TComb f ts) = sortsOfQIdent f ++ concatMap sortsOfTerm ts
 where
  sortsOfQIdent (Id _)   = []
  sortsOfQIdent (As _ s) = [s]
demand:
argument 1
deterministic:
deterministic operation
documentation:
-- Get all sorts occurring in a term.
failfree:
_
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{({TConst}) |-> {[]} || ({TSVar}) |-> {[]} || ({Let}) |-> _ || ({Forall}) |-> _ || ({Exists}) |-> _ || ({TComb}) |-> _}
name:
sortsOfTerm
precedence:
no precedence defined
result-values:
_
signature:
Term -> [Sort]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
reducible on all ground data terms