Returns true if Child has an alias this of type Parent, and as such is implicitly convertable.
Makes sure the types given can be extended.
Checks if Child extends Parent in any of the supported ways.
Checks if Child extends Parent by having a matching set of members.