+#ifdef DEBUG_libfirm
+ long nr; /**< An unique node number for each node to make
+ output readable. */
+#endif
+ tp_attr attr; /**< Type kind specific fields. This must be the
+ last entry in this struct! Varying size! */
+};
+
+void free_type_entities(ir_type *tp);
+
+void free_class_entities (ir_type *clss);
+void free_struct_entities (ir_type *strct);
+void free_method_entities (ir_type *method);
+void free_union_entities (ir_type *uni);
+void free_array_entities (ir_type *array);
+void free_enumeration_entities(ir_type *enumeration);
+void free_pointer_entities (ir_type *pointer);
+
+void free_array_automatic_entities(ir_type *array);
+
+void free_class_attrs (ir_type *clss);
+void free_struct_attrs (ir_type *strct);
+void free_method_attrs (ir_type *method);
+void free_union_attrs (ir_type *uni);
+void free_array_attrs (ir_type *array);
+void free_enumeration_attrs(ir_type *enumeration);
+void free_pointer_attrs (ir_type *pointer);
+
+void set_class_mode(ir_type *tp, ir_mode *mode);
+void set_struct_mode(ir_type *tp, ir_mode *mode);
+void set_pointer_mode(ir_type *tp, ir_mode *mode);
+void set_primitive_mode(ir_type *tp, ir_mode *mode);
+void set_enumeration_mode(ir_type *tp, ir_mode *mode);
+
+void set_class_size(ir_type *tp, unsigned bytes);
+void set_struct_size(ir_type *tp, unsigned bytes);
+void set_union_size(ir_type *tp, unsigned bytes);
+void set_array_size(ir_type *tp, unsigned bytes);
+void set_default_size(ir_type *tp, unsigned bytes);
+
+/** Set and get a class' dfn --
+ * This is an undocumented field, subject to change! */
+void set_class_dfn(ir_type *clss, int dfn);
+int get_class_dfn(const ir_type *clss);
+
+void add_compound_member(ir_type *compound, ir_entity *entity);
+
+/** Initialize the type module. */
+void ir_init_type(ir_prog *irp);
+
+/** free internal datastructures of type module */
+void ir_finish_type(ir_prog *irp);
+
+/** Clone an existing method type.
+ *
+ * @param tp the method type to clone.
+ * @param prefix if non-null, will be the prefix for the name of
+ * the cloned type