J3/16-286 To: J3 From: Robert Corbett Subject: Edits for Subclause 17.2 "Derived types ..." Date: 2016 October 12 1. Introduction This paper proposes edits to improve the title of Subclause 17.2 of 16-007r2 and to reverse an inadvertant and undesirable change in the subclause. 2. Discussion Fortran 2008 broadened the definition of elemental functions by adding the concept of impure elemental functions. That change allowed the operators defined in Subclause 17.2 to be impure, which was not intended. This change from Fortran 2003 is not listed in Subclause 1.6.2 "Fortran 2003 compatibility" of the Fortran 2008 standard and so the Fortran 2008 stadard contradicts itself. The effect of the change to the standard is to require careful programmers to deal with the possibility that the operators might not be pure, even though it would be perverse to make them impure. The title of Subclause 17.2 is misleading. The title is "Derived types and constants defined in the modules", but the modules also define operators. 3. Edits [448:9, 17.2 "Derived types and constants defined in the modules" title] Replace the title "Derived types and constants defined in the modules" with "Derived type, constants, and operators defined in the modules" {Complete the scope of the definitions in the modules.} [448:20, 17.2 "Derived types and constants defined in the modules" p3] Replace "defines the following." with "defines the following types, constants, and operators." {Matches the form of the definition given for IEEE_EXCEPTIONS in the previous paragraph.} [448:32, 17.2 "Derived types and constants defined in the modules" p3] Replace "The elemental operator ==" with "The pure elemental operator ==" {Require this instance of == to be pure." [448:34, 17.2 "Derived types and constants defined in the modules" p3] Replace "The elemental operator /=" with "The pure elemental operator /=" {Require this instance of /= to be pure.}