This applies a relatively simple solution for fixing some unintuitive cases in the unit handling code.
Currently entering `-1m50cm` evaluates to `-0.5m`, and similarly `1'6"` evaulates to just half a foot.
So effectively there's an implied `+` just between the numbers, which is quite confusing.
This works by adding parentheses so the negative distributes to the block of values before the next operator.
For example:
| Before | After |
| -1m50cm + 1m -2m50cm | -(1m50cm) + 1m -(2m50cm) |
| -4m + 0.5 / -1.1 | -(4m) + 0.5 / -(1.1)|
| -4m + 0.5 / -1.1 + -7m50cm * 3 | -(4m) + 0.5 / -(1.1) + -(7m50cm) * 3 |
| -1'6" | -(1'6") |
| -5m50cm + 1m * 4 - sin(6)m + 6m50cm - 8m70cm | -(5m50cm) + 1m * 4 - (sin(6)m) + 6m50cm - (8m70cm) |
| -1m50cm*2 | -(1m50cm)*2 |
I don't see much of a downside to this, especially because it's a contained step and doesn't touch any of the other unit handling code.