I was actually thinking that's kind of genius, even if it is a bit too subtle. Probably better than casting though.

(Of course the best thing is real range types like in Rust.)