There are many ways to continue to extend the `Distance` type, and many other types that can be constructed in the same fashion. Each extension should be considered in the context of the code base it's going to operate in. For example, it's not difficult to create a new protocol, some generic functions with type constraints, and end up with an `Area` type with a fully correct relationship to `Distance`. I may write about such extensions as I continue to explore this space.