Ok, so what do we want here? I've kept with the convention in metrics that float32 and float64 get special support, the rest gets converted. If I understand fused types correctly, code is generated for four cases, which is actually wasteful because the inputs are always of the same type, but I don't know how to enforce that.