title: OrderedDict comprehensions
body: <p>Can I extend syntax in python for dict comprehensions for other dicts, like the OrderedDict in <code>collections</code> module or my own types which inherit from <code>dict</code>?  </p>
  
  <p>Just rebinding the <code>dict</code> name obviously doesn't work, the <code>{key: value}</code> comprehension syntax still gives you a plain old dict for comprehensions and literals.  </p>
  
  <pre><code>&gt;&gt;&gt; from collections import OrderedDict
  &gt;&gt;&gt; olddict, dict = dict, OrderedDict
  &gt;&gt;&gt; {i: i*i for i in range(3)}.__class__
  &lt;type 'dict'&gt;
  </code></pre>
  
  <p>So, if it's possible how would I go about doing that?  It's OK if it only works in CPython.  For syntax I guess I would try it with a <code>O{k: v}</code> prefix like we have on the <code>r'various' u'string' b'objects'</code>.</p>
  
  <p><em>note:</em>  Of course we can use a generator expression instead, but I'm more interested seeing how hackable python is in terms of the grammar.</p>