144 Denotation Type Conventions
Given type T let attributes(T) be the attributes of T, as a set of (name,type) pairs.
The types Boolean, Integer, Real, String have no attributes.
Let resulttype(f,T₁, … , Tₙ) denote the result type of applying function f to n
arguments of types T₁, … , Tₙ.