Rick DeNatale wrote:
>> If that is too radical a change, I suggest that Range.first be extended
>> to accept an integer argument.  And in that case, it should delegate to
>> Enumerable.first. That is, even if (1..0).first continues to return 1,
>> (1..0).first(1) should correctly return [].
> 
> +1/2 on this one, I guess.  Note that this won't work for all ranges,
> for example:
> 
> (1.5..10.7).first(2)
> 
> Since float ranges aren't enumerable.
> 

But it will work in the sense that it will be consistent with the each 
method.  Now that first is a method of Enumerable, anyone calling it on 
an Enumerable object like a Range is going to expect it to be based on 
each.  If each raises an exception (as it does for float ranges) then 
first will raise an exception.

	David