I've proposed this before, and the discussion has been lost to bikeshedding. It went like this:
- If you allow fast math, then it needs the floats to be non-NaN.
- People who want floats to be non-NaN may also want to control whether these are signaling NaNs and whether Inf is allowed.
- This would require a complex type wrapper for floats and have generic arguments that customize every IEEE-754 feature under the sun.
- Such wrapper would be too complex and couldn't possibly work, because upholding all of the invariants would require runtime checks, e.g. after every division.