  In scientific and engineering applications, physical quantities embodied as
units of measurement (UoM) are frequently used. The loss of the Mars climate
orbiter, attributed to a confusion between the metric and imperial unit
systems, popularised the disastrous consequences of incorrectly handling
measurement values. Dimensional analysis can be used to ensure expressions
containing annotated values are evaluated correctly. This has led to the
development of a large number of libraries, languages and validators to ensure
developers can specify and verify UoM information in their designs and codes.
Many tools can also automatically convert values between commensurable UoM,
such as yards and metres. However these systems do not differentiate between
quantities and dimensions. For instance torque and work, which share the same
UoM, can not be interchanged because they do not represent the same entity. We
present a named quantity layer that complements dimensional analysis by
ensuring that values of different quantities are safely managed. Our technique
is a mixture of analysis and discipline, where expressions involving
multiplications are relegated to functions, in order to ensure that named
quantities are handled soundly.
