list-copy
(list-copy obj)
Returns a newly allocated copy of the list obj; a dotted list keeps its final cdr, and an obj that is not a pair is returned as it is. Only the spine is copied: the elements are shared, so mutating the copy with set-car! leaves the original alone.