Doubly linked lists are impractical in an immutable-data environment, but it turns out we can simulate them using singly linked lists. The technique is called a zipper and can also work with other data-structures.