Options for a long term fix of the special case for float/int/complex

I thought about this, but I think it has the same problems as option 4 in the original post. Without the type system keeping track of float vs int and flow analysis, this still means everywhere that currently returns a float needs changing to then return the specific ffi type, otherwise places that return float can’t be used with ffi intending only a float. This just permeates everywhere.

I don’t think there’s anything wrong with just spelling it how it is:

The standard library accepts floats and ints? float | int

There’s also still just standard library differences at play here, while most of these are pretty uncommon for users to be calling, these really aren’t compatible types even within python:

def boom(f: float):
    return f.hex()

boom(1)

and as was pointed out in the related thread this spawned out of:

(with those two referring to .hex and .fromhex)