extract Bounding Type
Compute the bounding signature from the given List of TypeRestrictions.
Consider three elements A, B, and C, with a single argument position. Say C = A ∩ B. If we eliminate the possibility C at some point, but later prove the argument is an A, then we know we can eliminate the possibility that it's also a B, because it also would have had to be a C, which was excluded. By doing all type testing intersected with the known upper type bounds at this point, we can identify this case.
Return
The type that acts as an upper bound for comparisons within these restrictions.
Parameters
argument Restrictions
The List of TypeRestrictions active for each argument position.