The type, str.maketrans, and bytes.maketrans builtins should support frozendict. The issues with exec and eval were reported in a separate issue.
>>> type("MyClass", (), {"x": 10}) <class '__main__.MyClass'> >>> type("MyClass", (), frozendict({"x": 10})) Traceback (most recent call last): File "<pyshell#30>", line 1, in <module> MyClass = type("MyClass", (), frozendict({"x": 10})) TypeError: type.__new__() argument 3 must be dict, not frozendict >>> str.maketrans(dict({'a': 'A'})) {97: 'A'} >>> str.maketrans(frozendict({'a': 'A'})) Traceback (most recent call last): File "<pyshell#23>", line 1, in <module> str.maketrans(frozendict({'a': 'A'})) TypeError: if you give only one argument to maketrans it must be a dict