Dlist (Difference List) is a purely functional list-like data structure supporting O(1) concatenation. This is particularly useful for efficient list construction from many lists. Dlist is a lazy immutable data type with no side effect.
This data structure is very handy when your algorithm requires lots of concatenations from many lists.
The idea is inspired by Haskell Data.Dlist and the APIs are influenced by Core.List.