Note, the implementation must ensure that: (x<=>y == 0) == (x==y)
redef fun <=>(o)
do
var i = 0
var l = length
if l == 0 then return 0
var it = _items.as(not null)
var oit = o._items.as(not null)
var ol = o.length
var len
if l < ol then len = l else len = ol
while i < len do
var a = it[i]
var b = oit[i]
if a != null then
if b == null then return 1
var d = a <=> b
if d != 0 then return d
else
if b != null then return -1
end
i += 1
end
return l <=> ol
end
lib/core/collection/array.nit:923,2--946,4