sclass PairComparedByA extends Pair { *() {} *(A *a, B *b) {} public bool equals(O o) { ret o instanceof Pair && eq(a, o/Pair.a); } public int compareTo(Pair p) { ret stdcmp(a, p.a); } }