I suppose you could implement an efficiently copied immutable singly linked list like this very easily. I think that's a basic functional programming idea, new list with head + list. Making the nodes garbage collected would save on memory usage.