"trans.  (T. Onoma)" <transami / runbox.com> wrote:
 
> | Separating Range functionality into a mixin might also make it easier to
> | get goodies like negative-stepping and infinite ranges.
> 
> Could you elaborate on this more?

Right now, Range = Interval + Compactly Represented 'Arithmetic Series'

Separating the two aspects would let us have intervals with +/-Inf as a
bound, without having to worry about explicitly enumerating over the
'elements' (a pure interval would have no elements). 

For the arithmetic series aspect, I was thinking of replacing succ with
step (i.e., have the range require a step(n) operator, and have succ
call step(1) internally. This would let those classes that can implement
an efficient step operator do so, and the ones that don't could have
succ fundamental and step(n) call succ n times instead).

I thought I had negative ranges worked out but I was wrong :) I'll have
to think on it some more.

martin