 : @first-char-no-radix ( i number-parse n char -- n/f )
     {
         { CHAR: - [ [ @neg-first-digit-no-radix ] require-next-digit ?neg ] }
-        { CHAR: + [ [ @pos-first-digit-no-radix ] require-next-digit ] }
-        [ @pos-first-digit-no-radix ]
+        { CHAR: + [ [ @pos-first-digit-no-radix ] require-next-digit ?pos ] }
+        [ @pos-first-digit-no-radix ?pos ]
     } case ; inline
 
 PRIVATE>

        } cond
    ] [ f ] if* ; inline

: add-ratio? ( n/f -- ? )
    dup real? [ dup >integer number= not ] [ drop f ] if ;


    dup first-bignum bignum= [ drop most-negative-fixnum ] [ neg ] if ;

: fp-?neg ( n -- -n )
    double>bits 63 2^ bitor bits>double ;

: ?neg ( n/f -- -n/f )
    [
