What prevents this from working: >>> import types >>> alltypes = [t for t in types.__dict__.keys() if t[:2] != '__'] >>> typestrings ={} >>> for t in alltypes: typestrings[eval('types.' + t): t] ... Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: unhashable type Why is <type 'dict'> not hashable? Surely its not mutable? Thanks, Van