Make a type be its hierarchy type in type arguments if it has subclasses
Renamed "hierachy type" to "virtual type"
Removed the special `->` operator for pointers of structs/unions