Hello! 
 
Shouldn't: 
 
if (TYPE(arg1) == T_FLOAT) 
 
be true when someone passes '42' (for example) and not '42.0'. 
 
I understand TYPE(arg1) != T_FIXNUM when someone passes 42.0, 
but I expect "42" to be a valid float argument. 
 
I have foo(double i); and I check the passed arguments. I expect the 
right ruby implementation to accept a foo(42) call. 
 
Regards, 
Elias