I would like to know why the following code doesn't work:


# This should be 1 followed by 13 zeroes...
range = 0..10000000000000

# This should be 1 followed by 12 zeroes...
range.step(1000000000000){|i| puts i}


    The error I get is this:


RangeError: bignum too big to convert into 'long'


    Why is there any "converting" to do?  How can this not work?
    My best guess is that the Range class is not written in Ruby and, hence, 
has funny limitation on how it may work.  If this is the case, it is totally 
unnecessary.  One of the things I like about Ruby is how much of Ruby can be 
written in Ruby.  "require" can be written in Ruby, "attr_accessor" can be 
written in Ruby and Range can be written in ruby.
    What's going on, here?
    Thank you...