úÎ)D     portable (Haskell 98) experimentaldons@cse.unsw.edu.au?A difference list is a function that given a list, returns the F original contents of the difference list prepended at the given list This structure supports O(1)& append and snoc operations on lists. $Converting a normal list to a dlist )Converting a dlist back to a normal list 0Create a difference list containing no elements 1Create difference list with given single element O(1)0, Prepend a single element to a difference list O(1)/, Append a single element at a difference list Appending difference lists Concatenate difference lists  O(length dl), List elimination, head, tail Return the head of the list Return the tail of the list Unfoldr for difference lists Foldr over difference lists Map over difference lists          dlist-0.2 Data.DListDListfromListtoListempty singletonconssnocappendconcatlistheadtailunfoldrfoldrmapDLunDL