A call back function will be called for each type stored in the set along with
the information if type represents an upper type bound (true) or refers to a
concrete class/interface type (the second parameter is then false).
Returns true if this set is empty.
Returns true if this set is empty.
Returns true if this set contains at least one type.
Returns true if this set contains at least one type.
The number of types explicitly stored in the set.
The number of types explicitly stored in the set. This number is independent
of the number of represented types. E.g., if java.lang.Object is stored in this set
then the size of this set is 1 even though it represents all known types.
Returns a pair where the first set contains all concrete types and the second set contains all upper type bounds.
An efficient representation of a set of types if some types are actually upper type bounds and hence already represent sets of types.