After determining that the input is a Tuple in node 33, we should eliminate the possibility that its value is 6 or 7, because those aren't values of tuple type.
Similarly, if we had discovered that its value is not of type Int, we should also eliminate the possibility of 6 or 7.
Be careful with a pattern that is a regular expression (which matches values of type AbstractString) or by equality to another regular expression, or an AbstractRange which matches range elements using ==, so for example 2.0 occursin 1:3. We may need to drop this optimization for any type that has a specialized implementation of ismatch. Also be careful about other specializations of isequal and ==. For example, a substring can test isequal to a string.
See this part of an automaton:
After determining that the input is a
Tuple
in node 33, we should eliminate the possibility that its value is6
or7
, because those aren't values of tuple type.Similarly, if we had discovered that its value is not of type
Int
, we should also eliminate the possibility of6
or7
.Be careful with a pattern that is a regular expression (which matches values of type
AbstractString
) or by equality to another regular expression, or anAbstractRange
which matches range elements using==
, so for example2.0 occursin 1:3
. We may need to drop this optimization for any type that has a specialized implementation ofismatch
. Also be careful about other specializations ofisequal
and==
. For example, a substring can testisequal
to a string.