Guy, > svg% ruby -e 'p ([1, "a"] <=> [1, 2])' > nil > svg% I see your point, but: %ruby -e 'p [[1],[2]].sort' [[1], [2]] %ruby -e 'p [[1],["a"]].sort' -e:1:in `sort': comparison of Array with Array failed (ArgumentError) from -e:1 So why have Array#sort allow comparisons where possible (throwing an error where it is not), but not allow comparison operators to do the same? irb(main):001:0> class Array irb(main):002:1> include Comparable irb(main):003:1> end => Array irb(main):004:0> [1] < [2] => true irb(main):005:0> [1] < ['a'] ArgumentError: comparison of Array with Array failed from (irb):5:in `<' from (irb):5 This seems more consistent to me. Anyone else? - Warren Brown