     ] [
         [ (number>text) ] with-scope
     ] if ;
+


: tens-place ( n -- str )
    100 mod dup 20 >= [
        10 /mod >r tens r>
        dup zero? [ drop ] [ "-" swap small-numbers 3append ] if
    ] [
        dup zero? [ drop "" ] [ small-numbers ] if

    "Seventeen" "Eighteen" "Nineteen" } nth ;

: tens ( n -- str )
    { f f "Twenty" "Thirty" "Forty" "Fifty" "Sixty" "Seventy" "Eighty" "Ninety" } nth ;

: scale-numbers ( n -- str )  ! up to 10^99
    { f "Thousand" "Million" "Billion" "Trillion" "Quadrillion" "Quintillion"
    "Sextillion" "Septillion" "Octillion" "Nonillion" "Decillion" "Undecillion"
    "Duodecillion" "Tredecillion" "Quattuordecillion" "Quindecillion"
    "Sexdecillion" "Septendecillion" "Octodecillion" "Novemdecillion"
