Use template instead of CTFE'd function as bodies are stripped in .di generation now.

The rest of the changes is just aesthetic.