True, which is why I was always a bit leery of the trick. Besides, if you're going to implement bignums anyway, you might as well start off "fixnums" as very small bignums ^^. LOL. Of course there's the obvious problem that most applications won't use bignums, and in applications that do, most numbers still aren't bignums.
But then, if you add two fixnums together and the result won't fit in a fixnum...
As an aside, in the current mzscheme implementation, it seems fixnums are type 'int and everything else is type 'num
Finally: if you need to access call* , it may be possible to determine its position in GLOBAL() and add a C-global CALL_STAR: