+class namedtype(type):
+ def __new__(cls, *args, typename=None, **kwargs):
+ self = super().__new__(cls, *args, **kwargs)
+ self.typename = typename
+ return self
+
+ @classmethod
+ def make(cls, *args, typename=None, **kwargs):
+ self = cls(*args, **kwargs)
+ self.typename = typename
+ return self
+