Type-safe physical computations and unit conversions in Idris