title: Python unhashable type: 'OrderedDict'
body: <p>I am not at all unfamiliar with the concept of:</p>
  
  <pre><code>TypeError: unhashable type: 'OrderedDict'
  </code></pre>
  
  <p>But I can not understand how the following line of codes can produce such a stack-trace.</p>
  
  <pre><code>89:     @staticmethod
  90:     def diff(var1, var2, path=[], level=0, curpath=[]):
  ...
  101:        elif isinstance(var1, list) and isinstance(var2, list):
  102:            l1s = set(var1)
  103:            l2s = set(var2)
  104:            retlist = []
  
    File "myFile.py", line 102, in diff
      l1s = set(var1)
  TypeError: unhashable type: 'OrderedDict'
  </code></pre>
  
  <p>How can line <code>102</code>, in the above code throw such an exception?</p>