Currently I am defining the following function to get type stability a la `one`

and `zero`

for single and double precision:

```
nan(::Type{Float32}) = NaN32
nan(::Type{Float64}) = NaN64
```

Inside of my function I call it with the appropriate type:

```
function f(a::T) where {T<:AbstractFloat}
a > zero(T) ? a : nan(T)
end
```

Is it possible to extend this definition to all `AbstractFloat`

types? How one would define a fallback method for other number of bits?