Well, that is what I meant. That NaN is effectively an error state. It’s only like null in that any float can be in this error state, because you can’t rule out this error state via the type system.
Why do you feel like it’s not a great solution to make NaN an explicit error?