     } case ; inline
 
 : ->denominator ( i number-parse n -- n/f )
-    @split [ @denom-first-digit ] require-next-digit ?make-ratio ; inline
+    { fixnum number-parse integer } declare
+    @split [ @denom-first-digit ] require-next-digit ?make-ratio ;
 
 : @num-digit-or-punc ( i number-parse n char -- n/f )
     {

    [ drop 2.0 swap exponent>> (pow) * ] 2tri ; inline

: ?make-float ( float-parse n/f -- float/f )
    {
        { [ dup not ] [ 2drop f ] }
        { [ over radix>> 10 = ] [ make-float-dec-exponent ] }
        [ make-float-bin-exponent ]
    } cond ; inline

: ?neg ( n/f -- -n/f )
    [ neg ] [ f ] if* ; inline

    digit-in-radix [ [ @num-digit-or-punc ] add-digit ] [ @abort ] if ;

: ->numerator ( i number-parse n -- n/f )
    { fixnum number-parse integer } declare
    @split [ @num-digit ] require-next-digit ?add-ratio ;

: @pos-digit-or-punc ( i number-parse n char -- n/f )
    {
