This is a Scala library of units of measurement featuring the International System of Units (SI).

The main types defined are `Quantity`

and `Unit`

.

A quantity is composed of a magnitude and a unit. It provides arithmetic operations where -- in many cases -- the system is smart enough to derive the correct type of the result: for instance, a quantity which unit has been computed to be mass * ((length / time) / time) automatically becomes a quantity of force unit. There are also nice shortcuts that, e.g., allow a `Quantity(10, metre)`

to be written as `10.m`

.

Unit classes are provided for the seven SI base units along with associated objects of common names like `metre`

, `kilogram`

, `second`

and so on. Furthermore, a (of course not complete) bunch of derived SI units like `squareMetre`

, `newton`

, `pascal`

, `joule`

, `watt`

or `volt`

is supported. The `Prefix`

class has case objects providing the usual SI prefixes like `kilo`

or `milli`

along with a multiplication operation for units.