elm-units stores, converts, compares, and does arithmetic on a huge number of unit values. It's aimed especially at engineering/scientific/technical applications but is designed to be generic enough to work well for other fields such as games and finance. The core of the package consists of types like Length, Duration, Temperature, Speed and Pixels, which you can use to add some nice type safety to data types and function signatures.