Scheme has rational numbers in its number tower, is that the kind of thing you mean?
(= 22/7 44/14) #t
(= 22/7 44/14) #t
Analogously, Rust or F# have type systems which allow you to build the Option type yourself easily: there is no magic behind them, and you can just write down whatever sum type you want. Similarly, we want to be able to build arbitrary quotient types (not just of numbers, but of general sets with equivalence relations) ourselves.
In any case, it is an interesting proposition. In order to be non-trivial the type system would have to be able to express the constraints of the normal form.