The native GC is supposed to be low level and is defined mostly in terms of structs. How would subtyping be implemented on top of this? Is it similar to C where a pointer can be converted if the first element of a struct is another? And will the support for virtual dispatch be flexible enough to allow for interfaces?