/* String :: struct str: *U8 len: S64 Slice :: struct data: *void len : S64 Any :: struct data: *void type: Type_ID */ Type_ID :: S32 Type_Info_Kind :: enum TYPE_NONE TYPE_S64 :: 7 // FIRST_NUMERIC TYPE_S32 TYPE_S16 TYPE_S8 TYPE_INT TYPE_CHAR TYPE_U64 TYPE_U32 TYPE_U16 TYPE_U8 TYPE_F32 TYPE_F64 TYPE_POINTER TYPE_BOOL // LAST_NUMERIC TYPE_STRING TYPE_VOID TYPE_ARRAY TYPE_LAMBDA TYPE_STRUCT TYPE_UNION TYPE_ENUM TYPE_TYPE TYPE_SLICE TYPE_TUPLE TYPE_ANY Type_Info_Struct_Member :: struct name: String type_id: Type_ID offset: S32 Type_Info :: struct kind: Type_Info_Kind size: S32 align: S32 is_unsigned: Bool type_id: Type_ID base_type: Type_ID array_size: S32 struct_member_count: S32 struct_members: *Type_Info_Struct_Member lambda_argument_count: S32 lambda_arguments: *Type_Info lambda_return: Type_ID type_infos_len: U32 #foreign type_infos : *Type_Info #foreign