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
|