Nemohu se zbavit dojmu, že tohle prostě patří do kompetence typového systému. No jo, ale on to Python.
Třeba F# má ve standardní knihovně SI jednotky. Takže stačí psát
open FSharp.Data.UnitSystems.SI.UnitSymbols let v = 5<m/s> let t = 10<s> let dist = v * t
a kompilátor i IDE odvodí pomocí typové inference, že dist má typ int<m>.
Výhoda pak je, že kompilátor zabráním problémům ještě před spuštěním programu