On Sat, May 18, 2002 at 10:25:50AM +0900, Christoph wrote: > # observing that A <=> B raises an ArgumentError would be > # enough to conclude that > > A < B # => false > B < A # => false It seems to me that it's enough to conclude that A and B are not comparable. I wonder how this differs from the conclusion you drew. > To appease your valid concerns it might be better to only catch > ``ComparableErrors'' lets say > > module Comparable > class Error < ArgumentError; end > def <(other) > begin > (self <=> other) < 0 ? true : false > rescue Error > false > end > end > # ... > end This seems like a good idea. That way, I can retain exceptions and still have partial orders (or, to think about it another way, partial orders would be written explicitly rather than implicitly). How do other languages handle this issue? Paul