You might want the same piece of code to work correctly under different numerical types. Answer: Op overloading + generics.
E.g. Dual numbers for autodiff; 2x2 matrices of quaternions for texture mapping; matrices of differing floating point types for machine learning. Why should I implement the same matrix operations a million times over?