"One obvious use of types in physics that we have not explored in this work is the expression of physical dimensions (length, mass, time) and units (meter, kilogram, second). ...This is not trivial to do with Haskell’s type system because one wants multiplication to “multiply the units” as well as the numbers." F# supports units: https://msdn.microsoft.com/en-us/library/dd233243.aspx
And note that there is no way to resolve this without some fundamental changes as Haskell requires that the two operands and the resultant type share a type. (Otherwise you could do some tricks with recursive types to accomplish this)
Most physical unit libraries simply describe a "unit-ed" multiplication/division/etc operator, so you write code like
let v = (5 ~* meter) / (1 *~ second)
This division operator would replace the standard one.This requires using Haskell extensions that support dependent types, but the libraries certainly exist.
I've used "Dimensional" before.