title: If an object is unhashable it's an error to ask if it's a dictionary key
body: <p>If an object is unhashable, like a set, it is an error to ask whether it's a key of a dictionary:</p>
  
  <pre><code>&gt;&gt;&gt; key = set()
  &gt;&gt;&gt; key in {}
  Traceback (most recent call last):
  TypeError: unhashable type: 'set'
  </code></pre>
  
  <p>I'm just wondering why this is.</p>
  
  <p>edit: I understand that the object needs to be hashed, but not why it needs to be an error if it can't.</p>