I understand that. That said, I don't really see it as justifying making an entire function a template, when it depends on no parameters. Further more, it will create different instance for `uint`, `const(uint)` etc...

The same result could be achieved with a template guard:

```D
static BigUint divInt(T)(BigUint x, T y_) pure
if ( is(Unqual!T == uint) )
{
    return divIntImp(x, y);
}
static BigUint divIntImpl(BigUint x, int y) pure
{
    //Non Template instance
}
```

But at this point, we are deviating from the original PR.