I would agree that “all concrete types are final” is poor wording and implies that it’s a leaf node on the subtyping tree, which is not true. My current mental model is that with the exception of Type{T} and unions thereof subtyping DataType, Unions making ad-hoc supertypes, and Union{} subtyping every type, we DO have a type tree with concrete leaf nodes and abstract nodes otherwise, and this is what most of the reflection methods will cover. Is that accurate, and if so would it be helpful?