Merge branch 'alexamdre/various-fixes' into next
[nit.git] / c_src / static_type._sep.h
index ce1f34d..c08b2af 100644 (file)
@@ -12,6 +12,8 @@ extern const classtable_elt_t VFT_MMAncestor[];
 
 extern const classtable_elt_t VFT_MMType[];
 
+extern const classtable_elt_t VFT_MMNullableType[];
+
 extern const classtable_elt_t VFT_MMTypeClass[];
 
 extern const classtable_elt_t VFT_MMTypeSimpleClass[];
@@ -19,280 +21,363 @@ extern const classtable_elt_t VFT_MMTypeSimpleClass[];
 extern const classtable_elt_t VFT_MMTypeNone[];
 extern const char *LOCATE_static_type;
 extern const int SFT_static_type[];
-#define COLOR_static_type___MMLocalClass____base_type_cache SFT_static_type[0]
-#define COLOR_static_type___MMLocalClass____ancestors SFT_static_type[1]
-#define COLOR_static_type___MMLocalClass___get_type SFT_static_type[2]
-#define COLOR_static_type___MMLocalClass___add_ancestor SFT_static_type[3]
-#define COLOR_static_type___MMLocalClass___ancestors SFT_static_type[4]
-#define COLOR_static_type___MMLocalClass___ancestor SFT_static_type[5]
-#define COLOR_static_type___MMLocalProperty____signature SFT_static_type[6]
-#define COLOR_static_type___MMLocalProperty____signatures_cache SFT_static_type[7]
-#define COLOR_static_type___MMLocalProperty___signature SFT_static_type[8]
-#define COLOR_static_type___MMLocalProperty___signature__eq SFT_static_type[9]
-#define COLOR_static_type___MMLocalProperty___signature_for SFT_static_type[10]
-#define ID_MMSignature SFT_static_type[11]
-#define COLOR_MMSignature SFT_static_type[12]
-#define COLOR_static_type___MMSignature____recv SFT_static_type[13]
-#define COLOR_static_type___MMSignature____params SFT_static_type[14]
-#define COLOR_static_type___MMSignature____return_type SFT_static_type[15]
-#define COLOR_static_type___MMSignature____closures SFT_static_type[16]
-#define COLOR_static_type___MMSignature____not_for_self_cache SFT_static_type[17]
-#define INIT_TABLE_POS_MMSignature SFT_static_type[18]
-#define COLOR_static_type___MMSignature___recv SFT_static_type[19]
-#define COLOR_static_type___MMSignature___return_type SFT_static_type[20]
-#define COLOR_static_type___MMSignature___closures SFT_static_type[21]
-#define COLOR_static_type___MMSignature___arity SFT_static_type[22]
-#define COLOR_static_type___MMSignature_____l SFT_static_type[23]
-#define COLOR_static_type___MMSignature_____bra SFT_static_type[24]
-#define COLOR_static_type___MMSignature___adaptation_to SFT_static_type[25]
-#define COLOR_static_type___MMSignature___not_for_self SFT_static_type[26]
-#define COLOR_static_type___MMSignature___init SFT_static_type[27]
-#define ID_MMClosure SFT_static_type[28]
-#define COLOR_MMClosure SFT_static_type[29]
-#define COLOR_static_type___MMClosure____signature SFT_static_type[30]
-#define COLOR_static_type___MMClosure____is_break SFT_static_type[31]
-#define INIT_TABLE_POS_MMClosure SFT_static_type[32]
-#define COLOR_static_type___MMClosure___signature SFT_static_type[33]
-#define COLOR_static_type___MMClosure___is_break SFT_static_type[34]
-#define COLOR_static_type___MMClosure___adaptation_to SFT_static_type[35]
-#define COLOR_static_type___MMClosure___init SFT_static_type[36]
-#define COLOR_static_type___MMClosure___not_for_self SFT_static_type[37]
-#define ID_MMAncestor SFT_static_type[38]
-#define COLOR_MMAncestor SFT_static_type[39]
-#define COLOR_static_type___MMAncestor____stype SFT_static_type[40]
-#define COLOR_static_type___MMAncestor____inheriter SFT_static_type[41]
-#define INIT_TABLE_POS_MMAncestor SFT_static_type[42]
-#define COLOR_static_type___MMAncestor___stype SFT_static_type[43]
-#define COLOR_static_type___MMAncestor___stype__eq SFT_static_type[44]
-#define COLOR_static_type___MMAncestor___inheriter SFT_static_type[45]
-#define COLOR_static_type___MMAncestor___inheriter__eq SFT_static_type[46]
-#define COLOR_static_type___MMAncestor___is_reffinement SFT_static_type[47]
-#define COLOR_static_type___MMAncestor___is_specialisation SFT_static_type[48]
-#define COLOR_static_type___MMAncestor___local_class SFT_static_type[49]
-#define COLOR_static_type___MMAncestor___init SFT_static_type[50]
-#define ID_MMType SFT_static_type[51]
-#define COLOR_MMType SFT_static_type[52]
-#define INIT_TABLE_POS_MMType SFT_static_type[53]
-#define COLOR_static_type___MMType___module SFT_static_type[54]
-#define COLOR_static_type___MMType___local_class SFT_static_type[55]
-#define COLOR_static_type___MMType_____l SFT_static_type[56]
-#define COLOR_static_type___MMType___is_supertype SFT_static_type[57]
-#define COLOR_static_type___MMType___for_module SFT_static_type[58]
-#define COLOR_static_type___MMType___adapt_to SFT_static_type[59]
-#define COLOR_static_type___MMType___upcast_for SFT_static_type[60]
-#define COLOR_static_type___MMType___not_for_self SFT_static_type[61]
-#define COLOR_static_type___MMType___init SFT_static_type[62]
-#define ID_MMTypeClass SFT_static_type[63]
-#define COLOR_MMTypeClass SFT_static_type[64]
-#define COLOR_static_type___MMTypeClass____local_class SFT_static_type[65]
-#define INIT_TABLE_POS_MMTypeClass SFT_static_type[66]
-#define COLOR_static_type___MMTypeClass___init SFT_static_type[67]
-#define ID_MMTypeSimpleClass SFT_static_type[68]
-#define COLOR_MMTypeSimpleClass SFT_static_type[69]
-#define INIT_TABLE_POS_MMTypeSimpleClass SFT_static_type[70]
-#define COLOR_static_type___MMTypeSimpleClass___init SFT_static_type[71]
-#define ID_MMTypeNone SFT_static_type[72]
-#define COLOR_MMTypeNone SFT_static_type[73]
-#define COLOR_static_type___MMTypeNone____module SFT_static_type[74]
-#define INIT_TABLE_POS_MMTypeNone SFT_static_type[75]
-#define COLOR_static_type___MMTypeNone___init SFT_static_type[76]
-#define COLOR_static_type___MMModule____type_none SFT_static_type[77]
-#define COLOR_static_type___MMModule___type_none SFT_static_type[78]
-val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1);
-#define ATTR_static_type___MMLocalClass____base_type_cache(recv) ATTR(recv, COLOR_static_type___MMLocalClass____base_type_cache)
-typedef val_t (* static_type___MMLocalClass___get_type_t)(val_t  self);
-val_t static_type___MMLocalClass___get_type(val_t  self);
-#define LOCATE_static_type___MMLocalClass___get_type "static_type::MMLocalClass::get_type"
-typedef void (* static_type___MMLocalClass___add_ancestor_t)(val_t  self, val_t  param0);
-void static_type___MMLocalClass___add_ancestor(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMLocalClass___add_ancestor "static_type::MMLocalClass::add_ancestor"
-#define ATTR_static_type___MMLocalClass____ancestors(recv) ATTR(recv, COLOR_static_type___MMLocalClass____ancestors)
-typedef val_t (* static_type___MMLocalClass___ancestors_t)(val_t  self);
-val_t static_type___MMLocalClass___ancestors(val_t  self);
-#define LOCATE_static_type___MMLocalClass___ancestors "static_type::MMLocalClass::ancestors"
-typedef val_t (* static_type___MMLocalClass___ancestor_t)(val_t  self, val_t  param0);
-val_t static_type___MMLocalClass___ancestor(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMLocalClass___ancestor "static_type::MMLocalClass::ancestor"
+#define ATTR_static_type___MMLocalClass____base_type_cache(recv) ATTR(recv, (SFT_static_type[0] + 0))
+#define ATTR_static_type___MMLocalClass____ancestors(recv) ATTR(recv, (SFT_static_type[0] + 1))
+#define CALL_static_type___MMLocalClass___get_type(recv) ((static_type___MMLocalClass___get_type_t)CALL((recv), (SFT_static_type[1] + 0)))
+#define CALL_static_type___MMLocalClass___add_ancestor(recv) ((static_type___MMLocalClass___add_ancestor_t)CALL((recv), (SFT_static_type[1] + 1)))
+#define CALL_static_type___MMLocalClass___ancestors(recv) ((static_type___MMLocalClass___ancestors_t)CALL((recv), (SFT_static_type[1] + 2)))
+#define CALL_static_type___MMLocalClass___ancestor(recv) ((static_type___MMLocalClass___ancestor_t)CALL((recv), (SFT_static_type[1] + 3)))
+#define ATTR_static_type___MMLocalProperty____signature(recv) ATTR(recv, (SFT_static_type[2] + 0))
+#define ATTR_static_type___MMLocalProperty____signatures_cache(recv) ATTR(recv, (SFT_static_type[2] + 1))
+#define CALL_static_type___MMLocalProperty___signature(recv) ((static_type___MMLocalProperty___signature_t)CALL((recv), (SFT_static_type[3] + 0)))
+#define CALL_static_type___MMLocalProperty___signature__eq(recv) ((static_type___MMLocalProperty___signature__eq_t)CALL((recv), (SFT_static_type[3] + 1)))
+#define CALL_static_type___MMLocalProperty___signature_for(recv) ((static_type___MMLocalProperty___signature_for_t)CALL((recv), (SFT_static_type[3] + 2)))
+#define ID_MMSignature (SFT_static_type[4])
+#define COLOR_MMSignature (SFT_static_type[5])
+#define ATTR_static_type___MMSignature____recv(recv) ATTR(recv, (SFT_static_type[6] + 0))
+#define ATTR_static_type___MMSignature____params(recv) ATTR(recv, (SFT_static_type[6] + 1))
+#define ATTR_static_type___MMSignature____return_type(recv) ATTR(recv, (SFT_static_type[6] + 2))
+#define ATTR_static_type___MMSignature____closures(recv) ATTR(recv, (SFT_static_type[6] + 3))
+#define ATTR_static_type___MMSignature____not_for_self_cache(recv) ATTR(recv, (SFT_static_type[6] + 4))
+#define INIT_TABLE_POS_MMSignature (SFT_static_type[7] + 0)
+#define CALL_static_type___MMSignature___recv(recv) ((static_type___MMSignature___recv_t)CALL((recv), (SFT_static_type[7] + 1)))
+#define CALL_static_type___MMSignature___return_type(recv) ((static_type___MMSignature___return_type_t)CALL((recv), (SFT_static_type[7] + 2)))
+#define CALL_static_type___MMSignature___closures(recv) ((static_type___MMSignature___closures_t)CALL((recv), (SFT_static_type[7] + 3)))
+#define CALL_static_type___MMSignature___closure_named(recv) ((static_type___MMSignature___closure_named_t)CALL((recv), (SFT_static_type[7] + 4)))
+#define CALL_static_type___MMSignature___arity(recv) ((static_type___MMSignature___arity_t)CALL((recv), (SFT_static_type[7] + 5)))
+#define CALL_static_type___MMSignature_____l(recv) ((static_type___MMSignature_____l_t)CALL((recv), (SFT_static_type[7] + 6)))
+#define CALL_static_type___MMSignature_____bra(recv) ((static_type___MMSignature_____bra_t)CALL((recv), (SFT_static_type[7] + 7)))
+#define CALL_static_type___MMSignature___adaptation_to(recv) ((static_type___MMSignature___adaptation_to_t)CALL((recv), (SFT_static_type[7] + 8)))
+#define CALL_static_type___MMSignature___not_for_self(recv) ((static_type___MMSignature___not_for_self_t)CALL((recv), (SFT_static_type[7] + 9)))
+#define CALL_static_type___MMSignature___init(recv) ((static_type___MMSignature___init_t)CALL((recv), (SFT_static_type[7] + 10)))
+#define ID_MMClosure (SFT_static_type[8])
+#define COLOR_MMClosure (SFT_static_type[9])
+#define ATTR_static_type___MMClosure____name(recv) ATTR(recv, (SFT_static_type[10] + 0))
+#define ATTR_static_type___MMClosure____signature(recv) ATTR(recv, (SFT_static_type[10] + 1))
+#define ATTR_static_type___MMClosure____is_break(recv) ATTR(recv, (SFT_static_type[10] + 2))
+#define ATTR_static_type___MMClosure____is_optional(recv) ATTR(recv, (SFT_static_type[10] + 3))
+#define INIT_TABLE_POS_MMClosure (SFT_static_type[11] + 0)
+#define CALL_static_type___MMClosure___name(recv) ((static_type___MMClosure___name_t)CALL((recv), (SFT_static_type[11] + 1)))
+#define CALL_static_type___MMClosure___signature(recv) ((static_type___MMClosure___signature_t)CALL((recv), (SFT_static_type[11] + 2)))
+#define CALL_static_type___MMClosure___is_break(recv) ((static_type___MMClosure___is_break_t)CALL((recv), (SFT_static_type[11] + 3)))
+#define CALL_static_type___MMClosure___is_optional(recv) ((static_type___MMClosure___is_optional_t)CALL((recv), (SFT_static_type[11] + 4)))
+#define CALL_static_type___MMClosure___adaptation_to(recv) ((static_type___MMClosure___adaptation_to_t)CALL((recv), (SFT_static_type[11] + 5)))
+#define CALL_static_type___MMClosure___init(recv) ((static_type___MMClosure___init_t)CALL((recv), (SFT_static_type[11] + 6)))
+#define CALL_static_type___MMClosure___not_for_self(recv) ((static_type___MMClosure___not_for_self_t)CALL((recv), (SFT_static_type[11] + 7)))
+#define CALL_static_type___MMClosure_____l(recv) ((static_type___MMClosure_____l_t)CALL((recv), (SFT_static_type[11] + 8)))
+#define ID_MMAncestor (SFT_static_type[12])
+#define COLOR_MMAncestor (SFT_static_type[13])
+#define ATTR_static_type___MMAncestor____stype(recv) ATTR(recv, (SFT_static_type[14] + 0))
+#define ATTR_static_type___MMAncestor____inheriter(recv) ATTR(recv, (SFT_static_type[14] + 1))
+#define INIT_TABLE_POS_MMAncestor (SFT_static_type[15] + 0)
+#define CALL_static_type___MMAncestor___stype__eq(recv) ((static_type___MMAncestor___stype__eq_t)CALL((recv), (SFT_static_type[15] + 1)))
+#define CALL_static_type___MMAncestor___stype(recv) ((static_type___MMAncestor___stype_t)CALL((recv), (SFT_static_type[15] + 2)))
+#define CALL_static_type___MMAncestor___inheriter__eq(recv) ((static_type___MMAncestor___inheriter__eq_t)CALL((recv), (SFT_static_type[15] + 3)))
+#define CALL_static_type___MMAncestor___inheriter(recv) ((static_type___MMAncestor___inheriter_t)CALL((recv), (SFT_static_type[15] + 4)))
+#define CALL_static_type___MMAncestor___is_reffinement(recv) ((static_type___MMAncestor___is_reffinement_t)CALL((recv), (SFT_static_type[15] + 5)))
+#define CALL_static_type___MMAncestor___is_specialisation(recv) ((static_type___MMAncestor___is_specialisation_t)CALL((recv), (SFT_static_type[15] + 6)))
+#define CALL_static_type___MMAncestor___local_class(recv) ((static_type___MMAncestor___local_class_t)CALL((recv), (SFT_static_type[15] + 7)))
+#define CALL_static_type___MMAncestor___init(recv) ((static_type___MMAncestor___init_t)CALL((recv), (SFT_static_type[15] + 8)))
+#define ID_MMType (SFT_static_type[16])
+#define COLOR_MMType (SFT_static_type[17])
+#define ATTR_static_type___MMType____as_nullable_cache(recv) ATTR(recv, (SFT_static_type[18] + 0))
+#define INIT_TABLE_POS_MMType (SFT_static_type[19] + 0)
+#define CALL_static_type___MMType___mmmodule(recv) ((static_type___MMType___mmmodule_t)CALL((recv), (SFT_static_type[19] + 1)))
+#define CALL_static_type___MMType___local_class(recv) ((static_type___MMType___local_class_t)CALL((recv), (SFT_static_type[19] + 2)))
+#define CALL_static_type___MMType___is_valid(recv) ((static_type___MMType___is_valid_t)CALL((recv), (SFT_static_type[19] + 3)))
+#define CALL_static_type___MMType_____l(recv) ((static_type___MMType_____l_t)CALL((recv), (SFT_static_type[19] + 4)))
+#define CALL_static_type___MMType___is_supertype(recv) ((static_type___MMType___is_supertype_t)CALL((recv), (SFT_static_type[19] + 5)))
+#define CALL_static_type___MMType___for_module(recv) ((static_type___MMType___for_module_t)CALL((recv), (SFT_static_type[19] + 6)))
+#define CALL_static_type___MMType___adapt_to(recv) ((static_type___MMType___adapt_to_t)CALL((recv), (SFT_static_type[19] + 7)))
+#define CALL_static_type___MMType___upcast_for(recv) ((static_type___MMType___upcast_for_t)CALL((recv), (SFT_static_type[19] + 8)))
+#define CALL_static_type___MMType___not_for_self(recv) ((static_type___MMType___not_for_self_t)CALL((recv), (SFT_static_type[19] + 9)))
+#define CALL_static_type___MMType___is_nullable(recv) ((static_type___MMType___is_nullable_t)CALL((recv), (SFT_static_type[19] + 10)))
+#define CALL_static_type___MMType___as_nullable(recv) ((static_type___MMType___as_nullable_t)CALL((recv), (SFT_static_type[19] + 11)))
+#define CALL_static_type___MMType___as_notnull(recv) ((static_type___MMType___as_notnull_t)CALL((recv), (SFT_static_type[19] + 12)))
+#define CALL_static_type___MMType___init(recv) ((static_type___MMType___init_t)CALL((recv), (SFT_static_type[19] + 13)))
+#define ID_MMNullableType (SFT_static_type[20])
+#define COLOR_MMNullableType (SFT_static_type[21])
+#define ATTR_static_type___MMNullableType____base_type(recv) ATTR(recv, (SFT_static_type[22] + 0))
+#define INIT_TABLE_POS_MMNullableType (SFT_static_type[23] + 0)
+#define CALL_static_type___MMNullableType___init(recv) ((static_type___MMNullableType___init_t)CALL((recv), (SFT_static_type[23] + 1)))
+#define ID_MMTypeClass (SFT_static_type[24])
+#define COLOR_MMTypeClass (SFT_static_type[25])
+#define ATTR_static_type___MMTypeClass____local_class(recv) ATTR(recv, (SFT_static_type[26] + 0))
+#define INIT_TABLE_POS_MMTypeClass (SFT_static_type[27] + 0)
+#define CALL_static_type___MMTypeClass___init(recv) ((static_type___MMTypeClass___init_t)CALL((recv), (SFT_static_type[27] + 1)))
+#define ID_MMTypeSimpleClass (SFT_static_type[28])
+#define COLOR_MMTypeSimpleClass (SFT_static_type[29])
+#define INIT_TABLE_POS_MMTypeSimpleClass (SFT_static_type[30] + 0)
+#define CALL_static_type___MMTypeSimpleClass___init(recv) ((static_type___MMTypeSimpleClass___init_t)CALL((recv), (SFT_static_type[30] + 1)))
+#define ID_MMTypeNone (SFT_static_type[31])
+#define COLOR_MMTypeNone (SFT_static_type[32])
+#define ATTR_static_type___MMTypeNone____mmmodule(recv) ATTR(recv, (SFT_static_type[33] + 0))
+#define INIT_TABLE_POS_MMTypeNone (SFT_static_type[34] + 0)
+#define CALL_static_type___MMTypeNone___init(recv) ((static_type___MMTypeNone___init_t)CALL((recv), (SFT_static_type[34] + 1)))
+#define ATTR_static_type___MMModule____type_none(recv) ATTR(recv, (SFT_static_type[35] + 0))
+#define CALL_static_type___MMModule___type_none(recv) ((static_type___MMModule___type_none_t)CALL((recv), (SFT_static_type[36] + 0)))
+#define CALL_static_type___MMModule___type_bool(recv) ((static_type___MMModule___type_bool_t)CALL((recv), (SFT_static_type[36] + 1)))
+static const char * const LOCATE_static_type___MMLocalClass___get_type = "static_type::MMLocalClass::get_type";
+val_t static_type___MMLocalClass___get_type(val_t p0);
+typedef val_t (*static_type___MMLocalClass___get_type_t)(val_t p0);
+static const char * const LOCATE_static_type___MMLocalClass___add_ancestor = "static_type::MMLocalClass::add_ancestor";
+void static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1);
+typedef void (*static_type___MMLocalClass___add_ancestor_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMLocalClass___ancestors = "static_type::MMLocalClass::ancestors";
+val_t static_type___MMLocalClass___ancestors(val_t p0);
+typedef val_t (*static_type___MMLocalClass___ancestors_t)(val_t p0);
+static const char * const LOCATE_static_type___MMLocalClass___ancestor = "static_type::MMLocalClass::ancestor";
+val_t static_type___MMLocalClass___ancestor(val_t p0, val_t p1);
+typedef val_t (*static_type___MMLocalClass___ancestor_t)(val_t p0, val_t p1);
+val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2);
+static const char * const LOCATE_static_type___MMLocalProperty___signature = "static_type::MMLocalProperty::signature";
+val_t static_type___MMLocalProperty___signature(val_t p0);
+typedef val_t (*static_type___MMLocalProperty___signature_t)(val_t p0);
+static const char * const LOCATE_static_type___MMLocalProperty___signature__eq = "static_type::MMLocalProperty::signature=";
+void static_type___MMLocalProperty___signature__eq(val_t p0, val_t p1);
+typedef void (*static_type___MMLocalProperty___signature__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMLocalProperty___signature_for = "static_type::MMLocalProperty::signature_for";
+val_t static_type___MMLocalProperty___signature_for(val_t p0, val_t p1);
+typedef val_t (*static_type___MMLocalProperty___signature_for_t)(val_t p0, val_t p1);
 val_t NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-#define ATTR_static_type___MMLocalProperty____signature(recv) ATTR(recv, COLOR_static_type___MMLocalProperty____signature)
-typedef val_t (* static_type___MMLocalProperty___signature_t)(val_t  self);
-val_t static_type___MMLocalProperty___signature(val_t  self);
-#define LOCATE_static_type___MMLocalProperty___signature "static_type::MMLocalProperty::signature"
-typedef void (* static_type___MMLocalProperty___signature__eq_t)(val_t  self, val_t  param0);
-void static_type___MMLocalProperty___signature__eq(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMLocalProperty___signature__eq "static_type::MMLocalProperty::signature="
-#define ATTR_static_type___MMLocalProperty____signatures_cache(recv) ATTR(recv, COLOR_static_type___MMLocalProperty____signatures_cache)
-typedef val_t (* static_type___MMLocalProperty___signature_for_t)(val_t  self, val_t  param0);
-val_t static_type___MMLocalProperty___signature_for(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMLocalProperty___signature_for "static_type::MMLocalProperty::signature_for"
-typedef val_t (* static_type___MMSignature___to_s_t)(val_t  self);
-val_t static_type___MMSignature___to_s(val_t  self);
-#define LOCATE_static_type___MMSignature___to_s "static_type::MMSignature::(string::Object::to_s)"
-#define ATTR_static_type___MMSignature____recv(recv) ATTR(recv, COLOR_static_type___MMSignature____recv)
-typedef val_t (* static_type___MMSignature___recv_t)(val_t  self);
-val_t static_type___MMSignature___recv(val_t  self);
-#define LOCATE_static_type___MMSignature___recv "static_type::MMSignature::recv"
-#define ATTR_static_type___MMSignature____params(recv) ATTR(recv, COLOR_static_type___MMSignature____params)
-#define ATTR_static_type___MMSignature____return_type(recv) ATTR(recv, COLOR_static_type___MMSignature____return_type)
-typedef val_t (* static_type___MMSignature___return_type_t)(val_t  self);
-val_t static_type___MMSignature___return_type(val_t  self);
-#define LOCATE_static_type___MMSignature___return_type "static_type::MMSignature::return_type"
-#define ATTR_static_type___MMSignature____closures(recv) ATTR(recv, COLOR_static_type___MMSignature____closures)
-typedef val_t (* static_type___MMSignature___closures_t)(val_t  self);
-val_t static_type___MMSignature___closures(val_t  self);
-#define LOCATE_static_type___MMSignature___closures "static_type::MMSignature::closures"
-typedef val_t (* static_type___MMSignature___arity_t)(val_t  self);
-val_t static_type___MMSignature___arity(val_t  self);
-#define LOCATE_static_type___MMSignature___arity "static_type::MMSignature::arity"
-typedef val_t (* static_type___MMSignature_____l_t)(val_t  self, val_t  param0);
-val_t static_type___MMSignature_____l(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMSignature_____l "static_type::MMSignature::<"
-typedef val_t (* static_type___MMSignature_____bra_t)(val_t  self, val_t  param0);
-val_t static_type___MMSignature_____bra(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMSignature_____bra "static_type::MMSignature::[]"
-typedef val_t (* static_type___MMSignature___adaptation_to_t)(val_t  self, val_t  param0);
-val_t static_type___MMSignature___adaptation_to(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMSignature___adaptation_to "static_type::MMSignature::adaptation_to"
-#define ATTR_static_type___MMSignature____not_for_self_cache(recv) ATTR(recv, COLOR_static_type___MMSignature____not_for_self_cache)
-typedef val_t (* static_type___MMSignature___not_for_self_t)(val_t  self);
-val_t static_type___MMSignature___not_for_self(val_t  self);
-#define LOCATE_static_type___MMSignature___not_for_self "static_type::MMSignature::not_for_self"
-typedef void (* static_type___MMSignature___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
-void static_type___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
-#define LOCATE_static_type___MMSignature___init "static_type::MMSignature::init"
+static const char * const LOCATE_static_type___MMSignature___recv = "static_type::MMSignature::recv";
+val_t static_type___MMSignature___recv(val_t p0);
+typedef val_t (*static_type___MMSignature___recv_t)(val_t p0);
+static const char * const LOCATE_static_type___MMSignature___return_type = "static_type::MMSignature::return_type";
+val_t static_type___MMSignature___return_type(val_t p0);
+typedef val_t (*static_type___MMSignature___return_type_t)(val_t p0);
+static const char * const LOCATE_static_type___MMSignature___closures = "static_type::MMSignature::closures";
+val_t static_type___MMSignature___closures(val_t p0);
+typedef val_t (*static_type___MMSignature___closures_t)(val_t p0);
+static const char * const LOCATE_static_type___MMSignature___closure_named = "static_type::MMSignature::closure_named";
+val_t static_type___MMSignature___closure_named(val_t p0, val_t p1);
+typedef val_t (*static_type___MMSignature___closure_named_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMSignature___arity = "static_type::MMSignature::arity";
+val_t static_type___MMSignature___arity(val_t p0);
+typedef val_t (*static_type___MMSignature___arity_t)(val_t p0);
+static const char * const LOCATE_static_type___MMSignature_____l = "static_type::MMSignature::<";
+val_t static_type___MMSignature_____l(val_t p0, val_t p1);
+typedef val_t (*static_type___MMSignature_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMSignature_____bra = "static_type::MMSignature::[]";
+val_t static_type___MMSignature_____bra(val_t p0, val_t p1);
+typedef val_t (*static_type___MMSignature_____bra_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMSignature___to_s = "static_type::MMSignature::(string::Object::to_s)";
+val_t static_type___MMSignature___to_s(val_t p0);
+typedef val_t (*static_type___MMSignature___to_s_t)(val_t p0);
+static const char * const LOCATE_static_type___MMSignature___adaptation_to = "static_type::MMSignature::adaptation_to";
+val_t static_type___MMSignature___adaptation_to(val_t p0, val_t p1);
+typedef val_t (*static_type___MMSignature___adaptation_to_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMSignature___not_for_self = "static_type::MMSignature::not_for_self";
+val_t static_type___MMSignature___not_for_self(val_t p0);
+typedef val_t (*static_type___MMSignature___not_for_self_t)(val_t p0);
+static const char * const LOCATE_static_type___MMSignature___init = "static_type::MMSignature::init";
+void static_type___MMSignature___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
+typedef void (*static_type___MMSignature___init_t)(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table);
 val_t NEW_MMSignature_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_static_type___MMClosure____signature(recv) ATTR(recv, COLOR_static_type___MMClosure____signature)
-typedef val_t (* static_type___MMClosure___signature_t)(val_t  self);
-val_t static_type___MMClosure___signature(val_t  self);
-#define LOCATE_static_type___MMClosure___signature "static_type::MMClosure::signature"
-#define ATTR_static_type___MMClosure____is_break(recv) ATTR(recv, COLOR_static_type___MMClosure____is_break)
-typedef val_t (* static_type___MMClosure___is_break_t)(val_t  self);
-val_t static_type___MMClosure___is_break(val_t  self);
-#define LOCATE_static_type___MMClosure___is_break "static_type::MMClosure::is_break"
-typedef val_t (* static_type___MMClosure___adaptation_to_t)(val_t  self, val_t  param0);
-val_t static_type___MMClosure___adaptation_to(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMClosure___adaptation_to "static_type::MMClosure::adaptation_to"
-typedef void (* static_type___MMClosure___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
-void static_type___MMClosure___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
-#define LOCATE_static_type___MMClosure___init "static_type::MMClosure::init"
-val_t NEW_MMClosure_static_type___MMClosure___init(val_t p0, val_t p1);
-typedef val_t (* static_type___MMClosure___not_for_self_t)(val_t  self);
-val_t static_type___MMClosure___not_for_self(val_t  self);
-#define LOCATE_static_type___MMClosure___not_for_self "static_type::MMClosure::not_for_self"
-typedef val_t (* static_type___MMAncestor___to_s_t)(val_t  self);
-val_t static_type___MMAncestor___to_s(val_t  self);
-#define LOCATE_static_type___MMAncestor___to_s "static_type::MMAncestor::(string::Object::to_s)"
-#define ATTR_static_type___MMAncestor____stype(recv) ATTR(recv, COLOR_static_type___MMAncestor____stype)
-typedef val_t (* static_type___MMAncestor___stype_t)(val_t  self);
-val_t static_type___MMAncestor___stype(val_t  self);
-#define LOCATE_static_type___MMAncestor___stype "static_type::MMAncestor::stype"
-typedef void (* static_type___MMAncestor___stype__eq_t)(val_t  self, val_t  param0);
-void static_type___MMAncestor___stype__eq(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMAncestor___stype__eq "static_type::MMAncestor::stype="
-#define ATTR_static_type___MMAncestor____inheriter(recv) ATTR(recv, COLOR_static_type___MMAncestor____inheriter)
-typedef val_t (* static_type___MMAncestor___inheriter_t)(val_t  self);
-val_t static_type___MMAncestor___inheriter(val_t  self);
-#define LOCATE_static_type___MMAncestor___inheriter "static_type::MMAncestor::inheriter"
-typedef void (* static_type___MMAncestor___inheriter__eq_t)(val_t  self, val_t  param0);
-void static_type___MMAncestor___inheriter__eq(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMAncestor___inheriter__eq "static_type::MMAncestor::inheriter="
-typedef val_t (* static_type___MMAncestor___is_reffinement_t)(val_t  self);
-val_t static_type___MMAncestor___is_reffinement(val_t  self);
-#define LOCATE_static_type___MMAncestor___is_reffinement "static_type::MMAncestor::is_reffinement"
-typedef val_t (* static_type___MMAncestor___is_specialisation_t)(val_t  self);
-val_t static_type___MMAncestor___is_specialisation(val_t  self);
-#define LOCATE_static_type___MMAncestor___is_specialisation "static_type::MMAncestor::is_specialisation"
-typedef val_t (* static_type___MMAncestor___local_class_t)(val_t  self);
-val_t static_type___MMAncestor___local_class(val_t  self);
-#define LOCATE_static_type___MMAncestor___local_class "static_type::MMAncestor::local_class"
-typedef void (* static_type___MMAncestor___init_t)(val_t  self, int* init_table);
-void static_type___MMAncestor___init(val_t  self, int* init_table);
-#define LOCATE_static_type___MMAncestor___init "static_type::MMAncestor::init"
+static const char * const LOCATE_static_type___MMClosure___name = "static_type::MMClosure::name";
+val_t static_type___MMClosure___name(val_t p0);
+typedef val_t (*static_type___MMClosure___name_t)(val_t p0);
+static const char * const LOCATE_static_type___MMClosure___signature = "static_type::MMClosure::signature";
+val_t static_type___MMClosure___signature(val_t p0);
+typedef val_t (*static_type___MMClosure___signature_t)(val_t p0);
+static const char * const LOCATE_static_type___MMClosure___is_break = "static_type::MMClosure::is_break";
+val_t static_type___MMClosure___is_break(val_t p0);
+typedef val_t (*static_type___MMClosure___is_break_t)(val_t p0);
+static const char * const LOCATE_static_type___MMClosure___is_optional = "static_type::MMClosure::is_optional";
+val_t static_type___MMClosure___is_optional(val_t p0);
+typedef val_t (*static_type___MMClosure___is_optional_t)(val_t p0);
+static const char * const LOCATE_static_type___MMClosure___adaptation_to = "static_type::MMClosure::adaptation_to";
+val_t static_type___MMClosure___adaptation_to(val_t p0, val_t p1);
+typedef val_t (*static_type___MMClosure___adaptation_to_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMClosure___init = "static_type::MMClosure::init";
+void static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+typedef void (*static_type___MMClosure___init_t)(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table);
+val_t NEW_MMClosure_static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3);
+static const char * const LOCATE_static_type___MMClosure___not_for_self = "static_type::MMClosure::not_for_self";
+val_t static_type___MMClosure___not_for_self(val_t p0);
+typedef val_t (*static_type___MMClosure___not_for_self_t)(val_t p0);
+static const char * const LOCATE_static_type___MMClosure_____l = "static_type::MMClosure::<";
+val_t static_type___MMClosure_____l(val_t p0, val_t p1);
+typedef val_t (*static_type___MMClosure_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMAncestor___stype__eq = "static_type::MMAncestor::stype=";
+void static_type___MMAncestor___stype__eq(val_t p0, val_t p1);
+typedef void (*static_type___MMAncestor___stype__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMAncestor___stype = "static_type::MMAncestor::stype";
+val_t static_type___MMAncestor___stype(val_t p0);
+typedef val_t (*static_type___MMAncestor___stype_t)(val_t p0);
+static const char * const LOCATE_static_type___MMAncestor___inheriter__eq = "static_type::MMAncestor::inheriter=";
+void static_type___MMAncestor___inheriter__eq(val_t p0, val_t p1);
+typedef void (*static_type___MMAncestor___inheriter__eq_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMAncestor___inheriter = "static_type::MMAncestor::inheriter";
+val_t static_type___MMAncestor___inheriter(val_t p0);
+typedef val_t (*static_type___MMAncestor___inheriter_t)(val_t p0);
+static const char * const LOCATE_static_type___MMAncestor___is_reffinement = "static_type::MMAncestor::is_reffinement";
+val_t static_type___MMAncestor___is_reffinement(val_t p0);
+typedef val_t (*static_type___MMAncestor___is_reffinement_t)(val_t p0);
+static const char * const LOCATE_static_type___MMAncestor___is_specialisation = "static_type::MMAncestor::is_specialisation";
+val_t static_type___MMAncestor___is_specialisation(val_t p0);
+typedef val_t (*static_type___MMAncestor___is_specialisation_t)(val_t p0);
+static const char * const LOCATE_static_type___MMAncestor___local_class = "static_type::MMAncestor::local_class";
+val_t static_type___MMAncestor___local_class(val_t p0);
+typedef val_t (*static_type___MMAncestor___local_class_t)(val_t p0);
+static const char * const LOCATE_static_type___MMAncestor___to_s = "static_type::MMAncestor::(string::Object::to_s)";
+val_t static_type___MMAncestor___to_s(val_t p0);
+typedef val_t (*static_type___MMAncestor___to_s_t)(val_t p0);
+static const char * const LOCATE_static_type___MMAncestor___init = "static_type::MMAncestor::init";
+void static_type___MMAncestor___init(val_t p0, int* init_table);
+typedef void (*static_type___MMAncestor___init_t)(val_t p0, int* init_table);
 val_t NEW_MMAncestor_static_type___MMAncestor___init();
-typedef val_t (* static_type___MMType___module_t)(val_t  self);
-val_t static_type___MMType___module(val_t  self);
-#define LOCATE_static_type___MMType___module "static_type::MMType::module"
-typedef val_t (* static_type___MMType___local_class_t)(val_t  self);
-val_t static_type___MMType___local_class(val_t  self);
-#define LOCATE_static_type___MMType___local_class "static_type::MMType::local_class"
-typedef val_t (* static_type___MMType_____l_t)(val_t  self, val_t  param0);
-val_t static_type___MMType_____l(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMType_____l "static_type::MMType::<"
-typedef val_t (* static_type___MMType___is_supertype_t)(val_t  self, val_t  param0);
-val_t static_type___MMType___is_supertype(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMType___is_supertype "static_type::MMType::is_supertype"
-typedef val_t (* static_type___MMType___for_module_t)(val_t  self, val_t  param0);
-val_t static_type___MMType___for_module(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMType___for_module "static_type::MMType::for_module"
-typedef val_t (* static_type___MMType___adapt_to_t)(val_t  self, val_t  param0);
-val_t static_type___MMType___adapt_to(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMType___adapt_to "static_type::MMType::adapt_to"
-typedef val_t (* static_type___MMType___upcast_for_t)(val_t  self, val_t  param0);
-val_t static_type___MMType___upcast_for(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMType___upcast_for "static_type::MMType::upcast_for"
-typedef val_t (* static_type___MMType___not_for_self_t)(val_t  self);
-val_t static_type___MMType___not_for_self(val_t  self);
-#define LOCATE_static_type___MMType___not_for_self "static_type::MMType::not_for_self"
-typedef void (* static_type___MMType___init_t)(val_t  self, int* init_table);
-void static_type___MMType___init(val_t  self, int* init_table);
-#define LOCATE_static_type___MMType___init "static_type::MMType::init"
+static const char * const LOCATE_static_type___MMType___mmmodule = "static_type::MMType::mmmodule";
+val_t static_type___MMType___mmmodule(val_t p0);
+typedef val_t (*static_type___MMType___mmmodule_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType___local_class = "static_type::MMType::local_class";
+val_t static_type___MMType___local_class(val_t p0);
+typedef val_t (*static_type___MMType___local_class_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType___is_valid = "static_type::MMType::is_valid";
+val_t static_type___MMType___is_valid(val_t p0);
+typedef val_t (*static_type___MMType___is_valid_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType_____l = "static_type::MMType::<";
+val_t static_type___MMType_____l(val_t p0, val_t p1);
+typedef val_t (*static_type___MMType_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMType___is_supertype = "static_type::MMType::is_supertype";
+val_t static_type___MMType___is_supertype(val_t p0, val_t p1);
+typedef val_t (*static_type___MMType___is_supertype_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMType___for_module = "static_type::MMType::for_module";
+val_t static_type___MMType___for_module(val_t p0, val_t p1);
+typedef val_t (*static_type___MMType___for_module_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMType___adapt_to = "static_type::MMType::adapt_to";
+val_t static_type___MMType___adapt_to(val_t p0, val_t p1);
+typedef val_t (*static_type___MMType___adapt_to_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMType___upcast_for = "static_type::MMType::upcast_for";
+val_t static_type___MMType___upcast_for(val_t p0, val_t p1);
+typedef val_t (*static_type___MMType___upcast_for_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMType___not_for_self = "static_type::MMType::not_for_self";
+val_t static_type___MMType___not_for_self(val_t p0);
+typedef val_t (*static_type___MMType___not_for_self_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType___is_nullable = "static_type::MMType::is_nullable";
+val_t static_type___MMType___is_nullable(val_t p0);
+typedef val_t (*static_type___MMType___is_nullable_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType___as_nullable = "static_type::MMType::as_nullable";
+val_t static_type___MMType___as_nullable(val_t p0);
+typedef val_t (*static_type___MMType___as_nullable_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType___as_notnull = "static_type::MMType::as_notnull";
+val_t static_type___MMType___as_notnull(val_t p0);
+typedef val_t (*static_type___MMType___as_notnull_t)(val_t p0);
+static const char * const LOCATE_static_type___MMType___init = "static_type::MMType::init";
+void static_type___MMType___init(val_t p0, int* init_table);
+typedef void (*static_type___MMType___init_t)(val_t p0, int* init_table);
 val_t NEW_MMType_static_type___MMType___init();
-typedef val_t (* static_type___MMTypeClass___to_s_t)(val_t  self);
-val_t static_type___MMTypeClass___to_s(val_t  self);
-#define LOCATE_static_type___MMTypeClass___to_s "static_type::MMTypeClass::(string::Object::to_s)"
-typedef val_t (* static_type___MMTypeClass___module_t)(val_t  self);
-val_t static_type___MMTypeClass___module(val_t  self);
-#define LOCATE_static_type___MMTypeClass___module "static_type::MMTypeClass::(static_type::MMType::module)"
-typedef val_t (* static_type___MMTypeClass___local_class_t)(val_t  self);
-val_t static_type___MMTypeClass___local_class(val_t  self);
-#define LOCATE_static_type___MMTypeClass___local_class "static_type::MMTypeClass::(static_type::MMType::local_class)"
-typedef val_t (* static_type___MMTypeClass_____l_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeClass_____l(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeClass_____l "static_type::MMTypeClass::(static_type::MMType::<)"
-typedef val_t (* static_type___MMTypeClass___upcast_for_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeClass___upcast_for(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeClass___upcast_for "static_type::MMTypeClass::(static_type::MMType::upcast_for)"
-#define ATTR_static_type___MMTypeClass____local_class(recv) ATTR(recv, COLOR_static_type___MMTypeClass____local_class)
-typedef void (* static_type___MMTypeClass___init_t)(val_t  self, val_t  param0, int* init_table);
-void static_type___MMTypeClass___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_static_type___MMTypeClass___init "static_type::MMTypeClass::init"
+static const char * const LOCATE_static_type___MMNullableType___is_valid = "static_type::MMNullableType::(static_type::MMType::is_valid)";
+val_t static_type___MMNullableType___is_valid(val_t p0);
+typedef val_t (*static_type___MMNullableType___is_valid_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___is_nullable = "static_type::MMNullableType::(static_type::MMType::is_nullable)";
+val_t static_type___MMNullableType___is_nullable(val_t p0);
+typedef val_t (*static_type___MMNullableType___is_nullable_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___as_notnull = "static_type::MMNullableType::(static_type::MMType::as_notnull)";
+val_t static_type___MMNullableType___as_notnull(val_t p0);
+typedef val_t (*static_type___MMNullableType___as_notnull_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___as_nullable = "static_type::MMNullableType::(static_type::MMType::as_nullable)";
+val_t static_type___MMNullableType___as_nullable(val_t p0);
+typedef val_t (*static_type___MMNullableType___as_nullable_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___init = "static_type::MMNullableType::init";
+void static_type___MMNullableType___init(val_t p0, val_t p1, int* init_table);
+typedef void (*static_type___MMNullableType___init_t)(val_t p0, val_t p1, int* init_table);
+val_t NEW_MMNullableType_static_type___MMNullableType___init(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___mmmodule = "static_type::MMNullableType::(static_type::MMType::mmmodule)";
+val_t static_type___MMNullableType___mmmodule(val_t p0);
+typedef val_t (*static_type___MMNullableType___mmmodule_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___local_class = "static_type::MMNullableType::(static_type::MMType::local_class)";
+val_t static_type___MMNullableType___local_class(val_t p0);
+typedef val_t (*static_type___MMNullableType___local_class_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType_____l = "static_type::MMNullableType::(static_type::MMType::<)";
+val_t static_type___MMNullableType_____l(val_t p0, val_t p1);
+typedef val_t (*static_type___MMNullableType_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMNullableType___to_s = "static_type::MMNullableType::(string::Object::to_s)";
+val_t static_type___MMNullableType___to_s(val_t p0);
+typedef val_t (*static_type___MMNullableType___to_s_t)(val_t p0);
+static const char * const LOCATE_static_type___MMNullableType___is_supertype = "static_type::MMNullableType::(static_type::MMType::is_supertype)";
+val_t static_type___MMNullableType___is_supertype(val_t p0, val_t p1);
+typedef val_t (*static_type___MMNullableType___is_supertype_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMNullableType___for_module = "static_type::MMNullableType::(static_type::MMType::for_module)";
+val_t static_type___MMNullableType___for_module(val_t p0, val_t p1);
+typedef val_t (*static_type___MMNullableType___for_module_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMNullableType___adapt_to = "static_type::MMNullableType::(static_type::MMType::adapt_to)";
+val_t static_type___MMNullableType___adapt_to(val_t p0, val_t p1);
+typedef val_t (*static_type___MMNullableType___adapt_to_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMNullableType___upcast_for = "static_type::MMNullableType::(static_type::MMType::upcast_for)";
+val_t static_type___MMNullableType___upcast_for(val_t p0, val_t p1);
+typedef val_t (*static_type___MMNullableType___upcast_for_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMNullableType___not_for_self = "static_type::MMNullableType::(static_type::MMType::not_for_self)";
+val_t static_type___MMNullableType___not_for_self(val_t p0);
+typedef val_t (*static_type___MMNullableType___not_for_self_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeClass___local_class = "static_type::MMTypeClass::(static_type::MMType::local_class)";
+val_t static_type___MMTypeClass___local_class(val_t p0);
+typedef val_t (*static_type___MMTypeClass___local_class_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeClass___mmmodule = "static_type::MMTypeClass::(static_type::MMType::mmmodule)";
+val_t static_type___MMTypeClass___mmmodule(val_t p0);
+typedef val_t (*static_type___MMTypeClass___mmmodule_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeClass_____l = "static_type::MMTypeClass::(static_type::MMType::<)";
+val_t static_type___MMTypeClass_____l(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeClass_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeClass___to_s = "static_type::MMTypeClass::(string::Object::to_s)";
+val_t static_type___MMTypeClass___to_s(val_t p0);
+typedef val_t (*static_type___MMTypeClass___to_s_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeClass___upcast_for = "static_type::MMTypeClass::(static_type::MMType::upcast_for)";
+val_t static_type___MMTypeClass___upcast_for(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeClass___upcast_for_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeClass___init = "static_type::MMTypeClass::init";
+void static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_table);
+typedef void (*static_type___MMTypeClass___init_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_MMTypeClass_static_type___MMTypeClass___init(val_t p0);
-typedef val_t (* static_type___MMTypeSimpleClass___is_supertype_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeSimpleClass___is_supertype(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeSimpleClass___is_supertype "static_type::MMTypeSimpleClass::(static_type::MMType::is_supertype)"
-typedef val_t (* static_type___MMTypeSimpleClass___for_module_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeSimpleClass___for_module(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeSimpleClass___for_module "static_type::MMTypeSimpleClass::(static_type::MMType::for_module)"
-typedef val_t (* static_type___MMTypeSimpleClass___adapt_to_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeSimpleClass___adapt_to(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeSimpleClass___adapt_to "static_type::MMTypeSimpleClass::(static_type::MMType::adapt_to)"
-typedef void (* static_type___MMTypeSimpleClass___init_t)(val_t  self, val_t  param0, int* init_table);
-void static_type___MMTypeSimpleClass___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_static_type___MMTypeSimpleClass___init "static_type::MMTypeSimpleClass::init"
+static const char * const LOCATE_static_type___MMTypeSimpleClass___is_supertype = "static_type::MMTypeSimpleClass::(static_type::MMType::is_supertype)";
+val_t static_type___MMTypeSimpleClass___is_supertype(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeSimpleClass___is_supertype_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeSimpleClass___for_module = "static_type::MMTypeSimpleClass::(static_type::MMType::for_module)";
+val_t static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeSimpleClass___for_module_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeSimpleClass___adapt_to = "static_type::MMTypeSimpleClass::(static_type::MMType::adapt_to)";
+val_t static_type___MMTypeSimpleClass___adapt_to(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeSimpleClass___adapt_to_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeSimpleClass___init = "static_type::MMTypeSimpleClass::init";
+void static_type___MMTypeSimpleClass___init(val_t p0, val_t p1, int* init_table);
+typedef void (*static_type___MMTypeSimpleClass___init_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(val_t p0);
-typedef val_t (* static_type___MMTypeNone___module_t)(val_t  self);
-val_t static_type___MMTypeNone___module(val_t  self);
-#define LOCATE_static_type___MMTypeNone___module "static_type::MMTypeNone::(static_type::MMType::module)"
-typedef val_t (* static_type___MMTypeNone___local_class_t)(val_t  self);
-val_t static_type___MMTypeNone___local_class(val_t  self);
-#define LOCATE_static_type___MMTypeNone___local_class "static_type::MMTypeNone::(static_type::MMType::local_class)"
-typedef val_t (* static_type___MMTypeNone_____l_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeNone_____l(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeNone_____l "static_type::MMTypeNone::(static_type::MMType::<)"
-typedef val_t (* static_type___MMTypeNone___is_supertype_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeNone___is_supertype(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeNone___is_supertype "static_type::MMTypeNone::(static_type::MMType::is_supertype)"
-typedef val_t (* static_type___MMTypeNone___upcast_for_t)(val_t  self, val_t  param0);
-val_t static_type___MMTypeNone___upcast_for(val_t  self, val_t  param0);
-#define LOCATE_static_type___MMTypeNone___upcast_for "static_type::MMTypeNone::(static_type::MMType::upcast_for)"
-#define ATTR_static_type___MMTypeNone____module(recv) ATTR(recv, COLOR_static_type___MMTypeNone____module)
-typedef void (* static_type___MMTypeNone___init_t)(val_t  self, val_t  param0, int* init_table);
-void static_type___MMTypeNone___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_static_type___MMTypeNone___init "static_type::MMTypeNone::init"
+static const char * const LOCATE_static_type___MMTypeNone___mmmodule = "static_type::MMTypeNone::(static_type::MMType::mmmodule)";
+val_t static_type___MMTypeNone___mmmodule(val_t p0);
+typedef val_t (*static_type___MMTypeNone___mmmodule_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeNone___is_nullable = "static_type::MMTypeNone::(static_type::MMType::is_nullable)";
+val_t static_type___MMTypeNone___is_nullable(val_t p0);
+typedef val_t (*static_type___MMTypeNone___is_nullable_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeNone_____l = "static_type::MMTypeNone::(static_type::MMType::<)";
+val_t static_type___MMTypeNone_____l(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeNone_____l_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeNone___to_s = "static_type::MMTypeNone::(string::Object::to_s)";
+val_t static_type___MMTypeNone___to_s(val_t p0);
+typedef val_t (*static_type___MMTypeNone___to_s_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeNone___is_supertype = "static_type::MMTypeNone::(static_type::MMType::is_supertype)";
+val_t static_type___MMTypeNone___is_supertype(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeNone___is_supertype_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeNone___local_class = "static_type::MMTypeNone::(static_type::MMType::local_class)";
+val_t static_type___MMTypeNone___local_class(val_t p0);
+typedef val_t (*static_type___MMTypeNone___local_class_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeNone___upcast_for = "static_type::MMTypeNone::(static_type::MMType::upcast_for)";
+val_t static_type___MMTypeNone___upcast_for(val_t p0, val_t p1);
+typedef val_t (*static_type___MMTypeNone___upcast_for_t)(val_t p0, val_t p1);
+static const char * const LOCATE_static_type___MMTypeNone___as_nullable = "static_type::MMTypeNone::(static_type::MMType::as_nullable)";
+val_t static_type___MMTypeNone___as_nullable(val_t p0);
+typedef val_t (*static_type___MMTypeNone___as_nullable_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeNone___as_notnull = "static_type::MMTypeNone::(static_type::MMType::as_notnull)";
+val_t static_type___MMTypeNone___as_notnull(val_t p0);
+typedef val_t (*static_type___MMTypeNone___as_notnull_t)(val_t p0);
+static const char * const LOCATE_static_type___MMTypeNone___init = "static_type::MMTypeNone::init";
+void static_type___MMTypeNone___init(val_t p0, val_t p1, int* init_table);
+typedef void (*static_type___MMTypeNone___init_t)(val_t p0, val_t p1, int* init_table);
 val_t NEW_MMTypeNone_static_type___MMTypeNone___init(val_t p0);
-val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_static_type___MMModule____type_none(recv) ATTR(recv, COLOR_static_type___MMModule____type_none)
-typedef val_t (* static_type___MMModule___type_none_t)(val_t  self);
-val_t static_type___MMModule___type_none(val_t  self);
-#define LOCATE_static_type___MMModule___type_none "static_type::MMModule::type_none"
+static const char * const LOCATE_static_type___MMModule___type_none = "static_type::MMModule::type_none";
+val_t static_type___MMModule___type_none(val_t p0);
+typedef val_t (*static_type___MMModule___type_none_t)(val_t p0);
+static const char * const LOCATE_static_type___MMModule___type_bool = "static_type::MMModule::type_bool";
+val_t static_type___MMModule___type_bool(val_t p0);
+typedef val_t (*static_type___MMModule___type_bool_t)(val_t p0);
+val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
 #endif