I'm confused between using ranges to generate a lazy list and using
them as criteria to match against.
These exclude continuous (non-countable) types-
> 2. There must be a successor function, so that given an object from
> the given domain, say a, successor(a) returns one and only one
> value from the same domain.
> 3. Given b = successor(a), there is no c so that b > c > a (using the
> same operator as above).
Rationals and reals can't participate in ranges by the above, which in
a sense make sense. You can't ask for all rationals/reals between two
endpoints, or the "next rational number bigger than 0". But it does
make sense to ask "is $x between 0 and 1 exclusive?"
There was a big discussion about this on the list recently but I don't
recall the resolutions.
And in Darren's example, could one declare a comparator and successor
operator for lists, and then get the example to produce ['Foo', 18],
['Foo', 19], ['Foo', 20], ['Foo', 21], ['Foo', 22], ['Foo', 23] ?