I'm a little worried about returning private types here, perhaps these types plus the function `radix` could be `pub use`'d out of `fmt::num`?