Turns out it's not true for all types T1, T2, T3 that T1 <: Union[T2, T3] iff T1 <: T2 or T1 <: T3. If T1 is itself a union type it's not necessary that the entire union T1 is a subtype of either T2 or T3, this just has to be true for all of its components.
Also, we add the assumption that no object's actual runtime type is a union type.
Turns out it's not true for all types
T1
,T2
,T3
thatT1 <: Union[T2, T3]
iffT1 <: T2
orT1 <: T3
. IfT1
is itself a union type it's not necessary that the entire unionT1
is a subtype of eitherT2
orT3
, this just has to be true for all of its components.Also, we add the assumption that no object's actual runtime type is a union type.
This fixes #196.
This change is