Tipo no pirateable de Python: 'OrderedDict'

No estoy nada familiarizado con el concepto de:

TypeError: unhashable type: 'OrderedDict'

Pero no puedo entender cómo la siguiente línea de códigos puede producir un seguimiento de pila de este tipo.

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'

¿Cómo puede la línea102, en el código anterior lanzar tal excepción?

Respuestas a la pregunta(3)

Su respuesta a la pregunta