object is ; op "<"(integer,integer)->integer; obj X = integer; obj Y = integer and integer; op "<"(x:X,y:Y)->boolean; op main(x:X, y:Y) = ( -- <(x,y); -- Syntactically, I don't think this can ever work, -- "<"(x,y); -- nor can this. x < y; -- However, this line should type check OK, given the -- above overload of "<". );