Mathematica dynamically detects types and applies handling coercion.
Dynamic type detection (DTD) is the technology by which Mathematica's
functions automatically analyze the input given to them and act accordingly.
For example, Mathematica's multiplication operator can handle
both symbolic and numeric input with intelligent handling of mixed types.
It detects and multiplies symbolic variables, real and complex numbers,
integers, vectors, matrices, tensors, and many other objects without
requiring users to do explicit typing, or to remember different function names
that apply to different types.