def __init__(self, name, namespace, ast_node):
super(UserDefined, self).__init__()<EOL>self._name = name<EOL>self.namespace = namespace<EOL>self._ast_node = ast_node<EOL>self._is_forward_ref = True<EOL>self.raw_doc = None<EOL>self.doc = None<EOL>self.fields = None<EOL>self.parent_type = None<EOL>self._raw_examples = None<EOL>self._examples = None<EOL>self._fields_by_name = None<EOL>
When this is instantiated, the type is treated as a forward reference.
Only when :meth:`set_attributes` is called is the type considered to
be fully defined.

:param str name: Name of type.
:param stone.ir.Namespace namespace: The namespace this type is
    defined in.
:param ast_node: Raw type definition from the parser.
:type ast_node: stone.frontend.ast.AstTypeDef