diff --git a/src/bool.c b/src/bool.c index b231515..917bef2 100644 --- a/src/bool.c +++ b/src/bool.c @@ -62,8 +62,13 @@ int Eqv (Object x1, Object x2) { return 1; t1 = TYPE(x1); t2 = TYPE(x2); - if (Numeric (t1) && Numeric (t2)) + if (Numeric (t1) && Numeric (t2)) { + /* r4rs 6.2 states that (eqv? 1 1.0) ==> #f */ + if(t1 == T_Flonum && t2 != T_Flonum + || t1 != T_Flonum && t2 == T_Flonum) + return 0; return Generic_Equal (x1, x2); + } if (t1 != t2) return 0; switch (t1) {