I don’t think that we should allow 3.0[mm] + 5.0[ft], even though both values represent length. Rust generally avoids implicit conversions, so I don’t think it’s a good idea to introduce such large source of implicitness via units system. We may even go further and distinguish between unit and how it’s stored in memory, so the same Meter unit will be usable with f32, f64, u32, etc. and 1u32[m] + 0.1f32[m] will produce an error, though I am not sure if it’s worth the associated complexity.