Dlist: A pure functional list-like data structure with O(1) concatenation.