trynova/nova

Consider adding a wrapper over `f32` for Value

Opened this issue · 0 comments

Currently it is possible to do Value::Float(0.0), which would create an invalid value, because the canonical representation of (positive) zero is Value::Integer(SmallInteger::zero()). Rather than using f32 as the value for the Float variant, we should instead use a transparent wrapper type that checks the value cannot be invalid.