From: Xavier Noria Date: 2007-09-21T08:57:22+09:00 Subject: Re: Idiomatic Ruby for Array#extract / Range#length? And yet another example that satisfies in addition zs < zs.succ for all zs in ZSquared which would be an expected relationship between succ and <=>: class ZSquared include Comparable attr_reader :n, :m def initialize(n, m) @n, @m = n, m end def succ self.class.new(n+1, m) end def <=>(zs) [self.m, self.n] <=> [zs.m, zs.n] end end a = ZSquared.new(0, 0) b = ZSquared.new(0, 1) puts a < b # true length = 0 (a .. b).each do |c| length += 1 puts length end # be prepared to send Ctrl-C I guess that's enough for today at 1:57 AM. -- fxn