Given a leaf_type and a root_type which is contained in its ancestry, return the type that root_type
is the immediate parent of.
In other words, this function determines the type that is derived directly from root_type which is also a base class of
leaf_type. Given a root type and a leaf type, this function can be used to determine the types and order in which the leaf
type is descended from the root type.
| root_type |
immediate parent of the returned type |
| leaf_type |
descendant of |
|
immediate child of |