One issue with templates is bloat resulting from:
```d
string toString(T)(T v) { ... }
int i; s = toString(i);
byte b; t = toString(b);
```
Two different functions are generated, whereas only one is necessary. Integral
promotions are a highly useful way to reduce the amount of code generation.