at least the inf cannot be returned because is_inf only test that the value is + or - inf.
for the first point I don't know what is better. I have no preferences.