That is, sure, mistakes have been made with units. More mistakes are made in other areas, though. Usually amusingly more basic areas.
The question seems to be whether encoding at the type level will help with these areas. It seems the conflict is the idea that fully proving a solution is superior to partially proving it.
Laudable, to be sure, but anyone that has attempted to prove that quick sort works knows, it isn't easy. Just understanding the shorter versions of some programs takes a fair bit of brain power as it is. Understanding the fully specified version can be orders of magnitude more complicated.
So, I am left wondering if it isn't enough to stop at "passes all the tests." Especially if you have the correct tests.
And eventually one wonders whether the "correct tests" includes more stringent types. Maybe it does. Maybe it doesn't. Likely depends on the situation, is my bet.