> I'm not really sure where the improvement in performance comes in the case of difference lists.

I admittedly haven't done microbenchmarks to see how bad things are.

Bryan O'Sullivan et al. certainly talks about this optimization in Chapter 13 of [Real World Haskell](http://book.realworldhaskell.org/read/data-structures.html). Bryan O'Sullivan is also the author of the [DList package on Hackage](https://hackage.haskell.org/package/dlist).

Laziness can mitigate the quadratic slowdown, I will try to write some microbenchmarks later today to see if it is handled.