Annex G (informative) Ill-formed, no diagnostic required [ifndr]

G.7 [module]: Modules [ifndr.module]

G.7.1[ifndr:module.unit.reserved.identifiers]
Specified in: [module.unit]

Specifying a module-name beginning with an identifier consisting of std followed by zero or more digits, or containing a reserved identifier ([lex.token]) in a module-declaration is ill-formed, no diagnostic required.
[Example 1: module std; // IFNDR, std is not allowed at the beginning module module; // IFNDR, module is a reserved identifier module std0; // IFNDR, std followed by digits is not allowed at the beginning export module _Test; // IFNDR, _Test is a reserved identifier export module te__st; // IFNDR, te__st is a reserved identifier — end example]

G.7.2[ifndr:module.unit.named.module.no.partition]
Specified in: [module.unit]

Having multiple primary module interface units for a named module is ill-formed, no diagnostic required.
[Example 1: module A; export import :Internals; // IFNDR, module partition not allowed — end example]

G.7.3[ifndr:module.unit.unexported.module.partition]
Specified in: [module.unit]

If a module partition of a module that is a module interface unit but is not directly or indirectly exported by the primary module interface unit ([module.import]), the program is ill-formed, no diagnostic required.
[Example 1: 

Translation unit #1:export module M; // primary module interface unit export import :A;

Translation unit #2:export module M:A; // OK, directly exported by M export import :B;

Translation unit #3:export module M:B; // OK, indirectly exported by M

Translation unit #4:export module M:C; // IFNDR, not directly or indirectly exported by M — end example]

G.7.4[ifndr:module.private.frag.other.module.units]
Specified in: [module.private.frag]

If a module has a private module fragment and there is another module unit of that module, the program is ill-formed, no diagnostic required.
[Example 1: 

Translation unit #1:export module M; module :private; // private module fragment

Translation unit #2:module M:A; // IFNDR, partition of M with private module fragment — end example]