docs: def create(type_dict, *type_parameters):
      """
        StructFactory.create(*type_parameters) expects:
  
          class name,
          ((binding requirement1,),
            (binding requirement2, bound_to_scope),
             ...),
          ((attribute_name1, attribute_sig1 (serialized)),
           (attribute_name2, attribute_sig2 ...),
           ...
           (attribute_nameN, ...))
      """
      name, parameters = type_parameters
      for param in parameters:
        assert isinstance(param, tuple)
      typemap = dict((attr, TypeSignature.deserialize(param, type_dict))
                     for attr, param in parameters)
      attributes = {'TYPEMAP': typemap}
      return TypeMetaclass(str(name), (Structural,), attributes)