I tried but couldn't find any previous discussion about this, so:

`BinaryInteger`

types have this method:

```
func signum() -> Self
```

(which returns `-1`

if this value is negative and `1`

if it’s positive; otherwise, `0`

.)

Is there a reason why this method shouldn't be available on floating point types too?

(Note that it's not the same as `FloatingPoint`

s existing `sign`

property.)

I guess things like -0 and +0, and nans with the sign bit set (or unset), infinity etc complicates it a bit, but what if it worked like the free function `sign(x)`

that we get when importing simd:

```
sign(Double(0)) // 0
sign(-Double(0)) // 0
sign(Double.infinity) // 1
sign(-Double.infinity) // -1
sign(Double.nan) // 0
sign(-Double.nan) // 0
```

?