copy returns with a pointer to a copy to the rest of first, and setlink appends that copy to second

setlink(second,copy(next(first)));