A difference list is a function that, given a list, returns the original
contents of the difference list prepended to the given list.
This structure supports
concat operations on lists, making it
useful for append-heavy uses such as logging and pretty printing.
Convert a list to a dlist
Convert a lazily-evaluated list to a dlist
Convert a dlist to a list
Create a dlist containing no elements
Create dlist with a single element
O(1) Prepend a single element to a dlist
O(1) Append a single element to a dlist
O(1) Append dlists