% Subtyping and Variance
-Although Rust doesn't have any notion of inheritance, it *does* include
-subtyping. In Rust, subtyping derives entirely from *lifetimes*. Since lifetimes
-are scopes, we can partially order them based on the *contains* (outlives)
-relationship. We can even express this as a generic bound.
+Although Rust doesn't have any notion of structural inheritance, it *does*
+include subtyping. In Rust, subtyping derives entirely from *lifetimes*. Since
+lifetimes are scopes, we can partially order them based on the *contains*
+(outlives) relationship. We can even express this as a generic bound.
Subtyping on lifetimes in terms of that relationship: if `'a: 'b` ("a contains
b" or "a outlives b"), then `'a` is a subtype of `'b`. This is a large source of