What do we call such a "type"? Maybe we have both "concrete" and "strictly concrete" types. Perhaps we also have both "abstract" and "strictly abstract" types. An ABC with some concrete default implementations might then be both a concrete type and an abstract type.Note that in the above bullet point "definition" of concrete type, I intentionally left out the requirement that the type can be instantiated.The other two bullet points are:* strictly concrete type: a concrete type that is not abstract––it concretely implements everything that it represents / describes. This is almost always a normal class, so it might be also known as "class".* strictly abstract type: an abstract type that is not concrete––it does not implement any functionality or storage.There might be a way to improve terminology from this, but I feel that what I sketched here is usable but still not very ambiguous.