Proposed resolution:
This wording is relative to N4878.
Modify [defns.prog.def.type] as indicated:
3.43 [defns.prog.def.type]
program-defined type
<library> non-closure class type or enumeration type that is not part of the C++ standard library and not defined by the implementation, or a closure type of a non-implementation-provided lambda expression, oran instantiationa name of a program-defined specialization or instantiation thereof [Note 1 to entry: Types defined by the implementation include extensions ([intro.compliance]) and internal types used by the library. — end note]