title: How to use difference lists in a Prolog interpreter
body: <p>When I was writing down <a href="https://stackoverflow.com/questions/41591498/is-it-possible-to-write-an-empty-list-as-a-difference-list-in-prolog">this question on an empty list as a difference list</a> I wanted to test what I knew about those structures. However, when I tried something as simple as comparing different notations it seemed that I was wrong and that I did <em>not</em> understand what is actually going on with difference lists.</p>
  
  <pre><code>?- L = [a,b,c|[d,e]]-[d,e], L = [a,b,c].
  false % expected true
  </code></pre>
  
  <p>I tested this on SWI-Prolog as well as SICStus. I verified the notation as this is how it is written in Bratko's Prolog Programming for AI, page 210, but apparently unification is not possible. Why is that? Don't these notations have the same declarative meaning? </p>