In many cases, it is useful (either for error checking or documentation
reasons) to define input and output types as having a particular unit of
time. In addition, by creating a type class defining type units, this
library should make it easier to separate the units of time the developer
wants to think in versus the units of time the library author wants to
think in.