Portability | portable |
---|---|
Stability | provisional |
Maintainer | ross@soi.city.ac.uk |
Safe Haskell | Safe-Infered |
An example instance of the new classes: numeric quantities with unit types. You can only compare and add quantities that use the same units.
Documentation
Quantities of a numeric type a
, in units encoded by the phantom
type parameter u
.
For example, types for counting apples and oranges can be defined as:
data Apple data Orange type Apples = Quantity Apple Int type Oranges = Quantity Orange Int
You can't compare Apples
with Oranges
(or add them).
You can add Apples
to Apples
, but not multiply them.
A full dimensional system keeping track of units while modelling multiplication and division will require type-level functions.
Quantity a |