The padding (and precision) there are part of the Int
constructor (and some others) because their meaning is defined for values of those types:
For the Alpha
constructor, which corresponds to %a
in the format string and may delegate to any printing code, it’s not defined how those should work:
The padding value outside on the %a
would somehow have to propagate inside to the %d
and apply there. Maybe padding could be implemented generically (not sure if it could or it has some type-specific behavior right now), but the same criticism would apply to flags and precision as well. Those certainly cannot work for arbitrary specifiers.
But indeed, I don’t see it documented, for which specifiers flags/padding/precision work and for which they silently don’t. That’s only apparent from looking at those internals.