A concrete proposal for NaNs in = and <. As mentioned previously, mpz_cmp_d doesn't accept them. * numbers.c (scm_num_eq_p, scm_less_p): Don't pass NaN to mpz_cmp_d. * tests/numbers.test (=, <): Add tests involving NaNs. Are the comments correct about SCM_COMPLEXP numbers never having a zero imaginary part? I suspect this means the mpz_cmp_d's in the complex/bignum cases are not reached. In fact perhaps any comparison (= complex non-complex) would be #f without any testing.