Thanks for the reference. I can see how values of type A could be considered as a subset of values of type A|B, but I think the 'any value of type A' subset of type A|B is more related to types and less about restricting the range/set of values for a type.
https://internals.rust-lang.org/t/thoughts-on-pattern-types-...