I guess this won't work for Int31 / Int32x
That's to support "-1" type like Int7, Int31, etc?
What about Int8x, Int32x types above (the ones that sacrifices a single value of the whole range to represent nil)?
If Optional<T>
can't do this, maybe we could introduce some "OptionalProtocol", that types could conform to?
Pseudocode:
struct Int32x: OptionalProtocol { ... }
var x = Int32x(42)
if let y = x { // ✅
...
}