A really good question. In short, a linear List (or array, or hash map, etc) will only have two available destroyer functions:
1. drop_into(list, func): It consumes the list, calling the given `func` for each element.
2. expect_empty(list): Consumes the list, panicking if the list isn't empty.