Man, listening to this talk makes me want range/guard types so bad that don't rely on explicit enumeration or peano nesting. EG: efficient, but compiler-checkable. I think it still boils down to a theory about how to consistently implement such a beast. But some mad genius some day will crack that, and that will be a good day. ;)
Actually, numbers could be represented by with recursive types without performance problems, if the compiler promises to optimize this special case. In Rust, for example, the `Option` type is promised to optimize down to a null pointer.