I see that you've added an Int.inf. Nice, but isn't it quite severely restricted by the fact that it still isn't taken as a "real" int by the type system?
void foo (int x) {} foo (Int.inf);
Compiler Error: 1:Bad argument 1 to foo. Compiler Error: 1:Expected: function(int : void) Compiler Error: 1:Got : function(object(is 65695) : void | mixed)
When I contemplated how this could be done, I was thinking along the lines of adding a couple of special bignum instances in mpz_glue.c or thereabouts.