written by Mark Newman
a. Compiler Error b. OK, prints "Calling B.foo" c. OK, prints "Calling C.foo, 0" d. OK, prints "Calling D.foo(), 0"
l.item, copy(l.next)
ln1.next = merge(ln1.next, ln2);
ln2.next = merge(ln1, ln2.next);
y.next = x.next; x.next = y;
s2.push(min); min = tmp;