It'd be nice to be able to extract the exact shift/multiply/add/negate operations from the types here, instead of only being able to do arithmetic without the ability to peer inside.
One use case for this would be when you're writing a compiler and you want to emit code where the dividend is not known.