tests for append and copy methods

since it's a recursive structure you need to create a new one to get a
tail, because of the way ownership gets captures. append() is a method
to add at the end of the the tail.
hit compiler bug on a match block. later yo