CVS difference for ai12s/ai12-0266-1.txt

Differences between 1.14 and version 1.15
Log of other versions for file ai12s/ai12-0266-1.txt

--- ai12s/ai12-0266-1.txt	2019/02/01 03:02:41	1.14
+++ ai12s/ai12-0266-1.txt	2019/02/13 06:14:22	1.15
@@ -12,29 +12,21 @@
 !standard 5.5.2(13/3)
 !standard 5.5.2(15/3)
 !standard A.18.2(74.1/3)
-!standard A.18.2(74.2/3)
 !standard A.18.2(230.1/3)
 !standard A.18.2(230.2/3)
-!standard A.18.2(230.3/3)
-!standard A.18.2(230.4/3)
 !standard A.18.3(46.1/3)
-!standard A.18.3(46.2/3)
 !standard A.18.3(144.1/3)
 !standard A.18.3(144.2/3)
-!standard A.18.3(144.3/3)
-!standard A.18.3(144.4/3)
 !standard A.18.5(37.1/3)
 !standard A.18.5(61.1/3)
 !standard A.18.5(61.2/3)
 !standard A.18.6(51.1/3)
-!standard A.18.6(51.2/3)
 !standard A.18.6(94.1/3)
 !standard A.18.6(94.2/3)
 !standard A.18.8(49.1/3)
 !standard A.18.8(85.1/3)
 !standard A.18.8(85.2/3)
 !standard A.18.9(61.1/3)
-!standard A.18.9(61.2/3)
 !standard A.18.9(113.1/3)
 !standard A.18.9(113.2/3)
 !standard A.18.10(44/3)
@@ -48,6 +40,7 @@
 !standard A.18.10(219/3)
 !class Amendment 18-03-28
 !status Amendment 1-2012 19-01-29
+!status ARG Approved 8-0-2  19-02-12
 !status work item 18-03-28
 !status received 18-03-28
 !priority Medium
@@ -244,7 +237,7 @@
   parameter, specifying the upper bound for the number of loop parameter objects
   (and the number of logical threads of control) to be associated with the
   iterator. In the absence of a chunk_specification, the maximum number of
-  chunks is determined in an implementation defined manner.
+  chunks is determined in an implementation-defined manner.
 
   Upon return from Split_Into_Chunks, the actual number of chunks for
   the loop is determined by calling the Chunk_Count operation of the
@@ -277,7 +270,7 @@
     AARM Discussion: The Max_Chunks parameter of the Split_Into_Chunks procedure
     is an upper bound for the number of chunks to be associated with a loop. A
     container implementation may opt for a lower value for the number of chunks
-    if a more optimal split can be determined. For instance, a tree based
+    if a more optimal split can be determined. For instance, a tree-based
     container might create the split based on the number of branches at the top
     levels of the tree.
 
@@ -359,11 +352,6 @@
 function Iterate (Container : in Vector)
       return Vector_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
 
-Modify A.18.2(74.2/3):
-
-function Iterate (Container : in Vector; Start : in Cursor)
-      return Vector_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
 Modify A.18.2(230.1/3):
 
   function Iterate (Container : in Vector)
@@ -371,50 +359,23 @@
 
 Modify A.18.2(230.2/3):
 
-  Iterate returns a {parallel and} reversible iterator object (see
+  Iterate returns {an}[a reversible] iterator object (see
   5.5.1) that will generate a value for a loop parameter (see 5.5.2)
   designating each node in Container, starting with the first node and
   moving the cursor as per the Next function when used as a forward
-  iterator, and starting with the last node and moving the cursor as per
-  the Previous function when used as a reverse iterator {, and starting
-  with all nodes concurrently when used as a parallel iterator}.
+  iterator, and processing the last node and moving the cursor as per
+  the Previous function when used as a reverse iterator {, and processing
+  all nodes concurrently when used as a parallel iterator}.
   Tampering with the cursors of Container is prohibited while the
   iterator object exists (in particular, in the sequence_of_statements
   of the loop_statement whose iterator_specification denotes this
   object). The iterator object needs finalization.
 
-Modify A.18.2(230.3/3):
-
-  function Iterate (Container : in Vector; Start : in Cursor)
-     return Vector_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
-Modify A.18.2(230.4/3):
-
-  If Start is not No_Element and does not designate an item in
-  Container, then Program_Error is propagated. If Start is No_Element,
-  then Constraint_Error is propagated. Otherwise, Iterate returns a
-  {parallel and }reversible iterator object (see 5.5.1) that will
-  generate a value for a loop parameter (see 5.5.2) designating each
-  node in Container, starting with the node designated by Start and
-  moving the cursor as per the Next function when used as a forward
-  iterator, or moving the cursor as per the Previous function when used
-  as a reverse iterator {, or all nodes concurrently when used as a
-  parallel iterator}. Tampering with the cursors of Container is
-  prohibited while the iterator object exists (in particular, in the
-  sequence_of_statements of the loop_statement whose
-  iterator_specification denotes this object). The iterator object needs
-  finalization.
-
 Modify A.18.3(46.1/3):
 
 function Iterate (Container : in List)
       return List_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
 
-Modify A.18.3(46.2/3):
-
-function Iterate (Container : in List; Start : in Cursor)
-      return List_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
 Modify A.18.3(144.1/3):
 
 function Iterate (Container : in List)
@@ -422,40 +383,18 @@
 
 Modify A.18.3(144.2/3):
 
-  Iterate returns a {parallel and }reversible iterator object (see
+  Iterate returns {an}[a reversible] iterator object (see
   5.5.1) that will generate a value for a loop parameter (see 5.5.2)
   designating each node in Container, starting with the first node and
   moving the cursor as per the Next function when used as a forward
-  iterator, and starting with the last node and moving the cursor as per
-  the Previous function when used as a reverse iterator {, and starting
-  with all nodes concurrently when used as a parallel iterator}.
+  iterator, and processing the last node and moving the cursor as per
+  the Previous function when used as a reverse iterator {, and processing
+  all nodes concurrently when used as a parallel iterator}.
   Tampering with the cursors of Container is prohibited while the
   iterator object exists (in particular, in the sequence_of_statements
   of the loop_statement whose iterator_specification denotes this
   object). The iterator object needs finalization.
 
-Modify A.18.3(144.3/3):
-
-function Iterate (Container : in List; Start : in Cursor)
-   return List_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;
-
-Modify A.18.3(144.4/3):
-
-  If Start is not No_Element and does not designate an item in
-  Container, then Program_Error is propagated. If Start is No_Element,
-  then Constraint_Error is propagated. Otherwise, Iterate returns a
-  {parallel and} reversible iterator object (see 5.5.1) that will
-  generate a value for a loop parameter (see 5.5.2) designating each
-  node in Container, starting with the node designated by Start and
-  moving the cursor as per the Next function when used as a forward
-  iterator, or moving the cursor as per the Previous function when used
-  as a reverse iterator {or all nodes concurrently used as a parallel
-  iterator}. Tampering with the cursors of Container is prohibited while
-  the iterator object exists (in particular, in the
-  sequence_of_statements of the loop_statement whose
-  iterator_specification denotes this object). The iterator object needs
-  finalization.
-
 Modify A.18.5(37.1/3):
 
 function Iterate (Container : in Map)
@@ -468,11 +407,11 @@
 
 Modify A.18.5(61.2/3):
 
-  Iterate returns a[n] {parallel} iterator object (see 5.5.1) that will
+  Iterate returns an iterator object (see 5.5.1) that will
   generate a value for a loop parameter (see 5.5.2) designating each
   node in Container, starting with the first node and moving the cursor
   according to the successor relation {when used as a forward iterator,
-  and starting with all nodes concurrently when used as a parallel
+  and processing all nodes concurrently when used as a parallel
   iterator}. Tampering with the cursors of Container is prohibited while
   the iterator object exists (in particular, in the
   sequence_of_statements of the loop_statement whose
@@ -484,11 +423,6 @@
 function Iterate (Container : in Map)
       return Map_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
 
-Modify A.18.6(51.2/3):
-
-function Iterate (Container : in Map; Start : in Cursor)
-      return Map_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
 Modify A.18.6(94.1/3):
 
 function Iterate (Container : in Map)
@@ -496,41 +430,19 @@
 
 Modify A.18.6(94.2/3):
 
-  Iterate returns a {parallel and} reversible iterator object (see
+  Iterate returns {an}[a reversible] iterator object (see
   5.5.1) that will generate a value{s} for a loop parameter (see 5.5.2)
   designating each node in Container, starting with the first node and
   moving the cursor according to the successor relation when used as a
   forward iterator, and starting with the last node and moving the
   cursor according to the predecessor relation when used as a reverse
-  iterator {, and starting with all nodes concurrently when used as a
+  iterator {, and processing all nodes concurrently when used as a
   parallel iterator}. Tampering with the cursors of Container is
   prohibited while the iterator object exists (in particular, in the
   sequence_of_statements of the loop_statement whose
   iterator_specification denotes this object). The iterator object needs
   finalization.
 
-Modify A.18.6(94.3/3):
-
-function Iterate (Container : in Map; Start : in Cursor)
-   return Map_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
-Modify A.18.6(94.4/3):
-
-  If Start is not No_Element and does not designate an item in
-  Container, then Program_Error is propagated. If Start is No_Element,
-  then Constraint_Error is propagated. Otherwise, Iterate returns a
-  {parallel and} reversible iterator object (see 5.5.1) that will
-  generate a value for a loop parameter (see 5.5.2) designating each
-  node in Container, starting with the node designated by Start and
-  moving the cursor according to the successor relation when used as a
-  forward iterator, or moving the cursor according to the predecessor
-  relation when used as a reverse iterator{, or all nodes concurrently
-  when used as a parallel iterator}. Tampering with the cursors of
-  Container is prohibited while the iterator object exists (in
-  particular, in the sequence_of_statements of the loop_statement whose
-  iterator_specification denotes this object). The iterator object needs
-  finalization.
-
 Modify A.18.8(49.1/3):
 
 function Iterate (Container : in Set)
@@ -543,11 +455,11 @@
 
 Modify A.18.8(85.2/3):
 
-  Iterate returns a[n] {parallel} iterator object (see 5.5.1) that will
+  Iterate returns an iterator object (see 5.5.1) that will
   generate a value for a loop parameter (see 5.5.2) designating each
   element in Container, starting with the first element and moving the
   cursor according to the successor relation {when used as a forward
-  iterator, and starting with all nodes concurrently when used as a
+  iterator, and processing all nodes concurrently when used as a
   parallel iterator.} Tampering with the cursors of Container is
   prohibited while the iterator object exists (in particular, in the
   sequence_of_statements of the loop_statement whose
@@ -559,11 +471,6 @@
 function Iterate (Container : in Set)
       return Set_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
 
-Modify A.18.9(61.2/3):
-
-function Iterate (Container : in Set; Start : in Cursor)
-      return Set_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
 Modify A.18.9(113.1/3):
 
 function Iterate (Container : in Set; Start : in Cursor)
@@ -571,41 +478,19 @@
 
 Modify A.18.9(113.2/3):
 
-  Iterate returns a {parallel and} reversible iterator object (see 5.5.1)
+  Iterate returns {an}[a reversible] iterator object (see 5.5.1)
   that will generate a value for a loop parameter (see 5.5.2)
   designating each element in Container, starting with the first element
   and moving the cursor according to the successor relation when used as
   a forward iterator, and starting with the last element and moving the
   cursor according to the predecessor relation when used as a reverse
-  iterator {, and starting with all nodes concurrently when used as a
+  iterator {, and processing all nodes concurrently when used as a
   parallel iterator}. Tampering with the cursors of Container is
   prohibited while the iterator object exists (in particular, in the
   sequence_of_statements of the loop_statement whose
   iterator_specification denotes this object). The iterator object needs
   finalization.
 
-Modify A.18.9(113.3/3):
-
-function Iterate (Container : in Set; Start : in Cursor)
-   return Set_Iterator_Interfaces.{Parallel_}Reversible_Iterator'Class;
-
-Modify A.18.9(113.4/3):
-
-  If Start is not No_Element and does not designate an item in
-  Container, then Program_Error is propagated. If Start is No_Element,
-  then Constraint_Error is propagated. Otherwise, Iterate returns a
-  {parallel and} reversible iterator object (see 5.5.1) that will generate a
-  value for a loop parameter (see 5.5.2) designating each element in
-  Container, starting with the element designated by Start and moving
-  the cursor according to the successor relation when used as a forward
-  iterator, or moving the cursor according to the predecessor relation
-  when used as a reverse iterator {, or all nodes concurrently when used
-  as a parallel iterator}. Tampering with the cursors of Container is
-  prohibited while the iterator object exists (in particular, in the
-  sequence_of_statements of the loop_statement whose
-  iterator_specification denotes this object). The iterator object needs
-  finalization.
-
 Modify A.18.10(44/3):
 
 function Iterate (Container : in Tree)
@@ -628,11 +513,11 @@
 
 Modify A.18.10(157/4)
 
-  Iterate returns a[n] {parallel} iterator object (see 5.5.1) that will
+  Iterate returns an iterator object (see 5.5.1) that will
   generate a value for a loop parameter (see 5.5.2) designating each
   element node in Container, starting from with the root node and
   proceeding in a depth-first order {when used as a forward iterator,
-  and starting with all nodes concurrently when used as a parallel
+  and processing all nodes concurrently when used as a parallel
   iterator}. Tampering with the cursors of Container is prohibited while
   the iterator object exists (in particular, in the
   sequence_of_statements of the loop_statement whose
@@ -647,7 +532,7 @@
 Modify A.18.10(159/3):
 
   If Position equals No_Element, then Constraint_Error is propagated.
-  Otherwise, Iterate_Subtree returns a[n] {parallel} iterator object
+  Otherwise, Iterate_Subtree returns an iterator object
   (see 5.5.1) that will generate a value for a loop parameter (see
   5.5.2) designating each element in the subtree rooted by the node
   designated by Position, starting from with the node designated by
@@ -668,7 +553,7 @@
 
 Modify A.18.10(219/3):
 
-   Iterate_Children returns a {parallel and }reversible iterator object 
+   Iterate_Children returns {an}[a reversible] iterator object 
    (see 5.5.1) that will generate a value for a loop parameter (see 5.5.2) 
    designating each child node of Parent. If Parent equals No_Element, then
    Constraint_Error is propagated. If Parent does not designate a node in 
@@ -677,7 +562,7 @@
    node and moving the cursor as per the function Next_Sibling; when used as
    a reverse iterator, the nodes are designated starting with the last child
    node and moving the cursor as per the function Previous_Sibling{; when used
-   as a parallel iterator, starting with all child nodes concurrently}. 
+   as a parallel iterator, processing all child nodes concurrently}. 
    Tampering with the cursors of Container is prohibited while the iterator 
    object exists (in particular, in the sequence_of_statements of the 
    loop_statement whose iterator_specification denotes this object). The 
@@ -966,7 +851,7 @@
 Max_Chunks parameter, specifying the upper bound for the number of loop 
 parameter objects (and the number of logical threads of control) to be 
 associated with the iterator. In the absence of a @fa<chunk_specification>, 
-the maximum number of chunks is determined in an implementation defined 
+the maximum number of chunks is determined in an implementation-defined 
 manner.
 
 Upon return from Split_Into_Chunks, the actual number of chunks for
@@ -1129,15 +1014,6 @@
 @xcode<   @b<function> Iterate (Container : @b<in> Vector)
       @b<return> Vector_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
 
-!corrigendum A.18.2(74.2/3)
-
-@drepl
-@xcode<   @b<function> Iterate (Container : @b<in> Vector; Start : @b<in> Cursor)
-      @b<return> Vector_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<   @b<function> Iterate (Container : @b<in> Vector; Start : @b<in> Cursor)
-      @b<return> Vector_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
 !corrigendum A.18.2(230.1/3)
 
 @drepl
@@ -1161,53 +1037,18 @@
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 @dby
-@xindent<Iterate returns a parallel and reversible iterator object (see 5.5.1) 
+@xindent<Iterate returns an iterator object (see 5.5.1) 
 that will generate a value for a loop parameter (see 5.5.2) designating each 
 node in Container, starting with
 the first node and moving the cursor as per the Next function when
 used as a forward iterator, and starting with the last node and moving
-the cursor as per the Previous function when used as a reverse iterator, and starting
-with all nodes concurrently when used as a parallel iterator.
+the cursor as per the Previous function when used as a reverse iterator, and processing
+all nodes concurrently when used as a parallel iterator.
 Tampering with the cursors of Container is prohibited while the iterator object
 exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 
-!corrigendum A.18.2(230.3/3)
-
-@drepl
-@xcode<@b<function> Iterate (Container : @b<in> Vector; Start : @b<in> Cursor)
-   @b<return> Vector_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<@b<function> Iterate (Container : @b<in> Vector; Start : @b<in> Cursor)
-   @b<return> Vector_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
-!corrigendum A.18.2(230.4/3)
-
-@drepl
-@xindent<If Start is not No_Element and does not designate an item in Container, then
-Program_Error is propagated. If Start is No_Element, then Constraint_Error is propagated.
-Otherwise, Iterate returns a reversible iterator object (see 5.5.1) that will generate
-a value for a loop parameter (see 5.5.2) designating each node in Container, starting with the
-node designated by Start and moving the cursor as per the Next function
-when used as a forward iterator, or moving the cursor as per the Previous
-function when used as a reverse iterator. Tampering with the cursors of Container
-is prohibited while the iterator object exists (in particular, in the
-@fa<sequence_of_statements> of the @fa<loop_statement> whose @fa<iterator_specification>
-denotes this object). The iterator object needs finalization.>
-@dby
-@xindent<If Start is not No_Element and does not designate an item in Container, then
-Program_Error is propagated. If Start is No_Element, then Constraint_Error is propagated.
-Otherwise, Iterate returns a parallel and reversible iterator object (see 5.5.1) that 
-will generate a value for a loop parameter (see 5.5.2) designating each node in Container, 
-starting with the node designated by Start and moving the cursor as per the Next function
-when used as a forward iterator, or moving the cursor as per the Previous
-function when used as a reverse iterator, or all nodes concurrently when used as a
-parallel iterator. Tampering with the cursors of Container
-is prohibited while the iterator object exists (in particular, in the
-@fa<sequence_of_statements> of the @fa<loop_statement> whose @fa<iterator_specification>
-denotes this object). The iterator object needs finalization.>
-
 !corrigendum A.18.3(46.1/3)
 
 @drepl
@@ -1217,15 +1058,6 @@
 @xcode<   @b<function> Iterate (Container : @b<in> List)
       @b<return> List_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
 
-!corrigendum A.18.3(46.2/3)
-
-@drepl
-@xcode<   @b<function> Iterate (Container : @b<in> List; Start : @b<in> Cursor)
-      @b<return> List_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<   @b<function> Iterate (Container : @b<in> List; Start : @b<in> Cursor)
-      @b<return> List_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
 !corrigendum A.18.3(144.1/3)
 
 @drepl
@@ -1248,54 +1080,18 @@
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 @dby
-@xindent<Iterate returns a parallel and reversible iterator object (see 5.5.1) 
+@xindent<Iterate returns an iterator object (see 5.5.1) 
 that will generate a value for a loop parameter (see 5.5.2) designating each node 
 in Container, starting with
 the first node and moving the cursor as per the Next function when
 used as a forward iterator, and starting with the last node and moving
-the cursor as per the Previous function when used as a reverse iterator, and starting
-with all nodes concurrently when used as a parallel iterator.
+the cursor as per the Previous function when used as a reverse iterator, and 
+processing all nodes concurrently when used as a parallel iterator.
 Tampering with the cursors of Container is prohibited while the iterator object
 exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 
-!corrigendum A.18.3(144.3/3)
-
-@drepl
-@xcode<@b<function> Iterate (Container : @b<in> List; Start : @b<in> Cursor)
-   @b<return> List_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<@b<function> Iterate (Container : @b<in> List; Start : @b<in> Cursor)
-   @b<return> List_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
-!corrigendum A.18.3(144.4/3)
-
-@drepl
-@xindent<If Start is not No_Element and does not designate an item in Container, then Program_Error
-is propagated. If Start is No_Element, then Constraint_Error is propagated.
-Otherwise, Iterate returns a reversible iterator object (see 5.5.1) that will generate
-a value for a loop parameter (see 5.5.2) designating each node in Container, starting with the
-node designated by Start and moving the cursor as per the Next function
-when used as a forward iterator, or moving the cursor as per the Previous
-function when used as a reverse iterator. Tampering with the cursors of Container
-is prohibited while the iterator object exists (in particular, in the
-@fa<sequence_of_statements> of the @fa<loop_statement> whose @fa<iterator_specification>
-denotes this object). The iterator object needs finalization.>
-@dby
-@xindent<If Start is not No_Element and does not designate an item in 
-Container, then Program_Error is propagated. If Start is No_Element, then 
-Constraint_Error is propagated. Otherwise, Iterate returns a parallel and 
-reversible iterator object (see 5.5.1) that will generate
-a value for a loop parameter (see 5.5.2) designating each node in Container, 
-starting with the node designated by Start and moving the cursor as per the 
-Next function when used as a forward iterator, or moving the cursor as per 
-the Previous function when used as a reverse iterator, or all nodes 
-concurrently when used as a parallel iterator. Tampering with the cursors of 
-Container is prohibited while the iterator object exists (in particular, 
-in the @fa<sequence_of_statements> of the @fa<loop_statement> whose 
-@fa<iterator_specification>
-denotes this object). The iterator object needs finalization.>
 
 !corrigendum A.18.5(37.1/3)
 
@@ -1327,11 +1123,11 @@
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 @dby
-@xindent<Iterate returns a parallel iterator object (see 5.5.1) that will generate a
+@xindent<Iterate returns an iterator object (see 5.5.1) that will generate a
 value for a loop parameter (see 5.5.2) designating each node in Container,
 starting with the first node and moving the cursor according to the successor 
 relation when used as a forward iterator,
-and starting with all nodes concurrently when used as a parallel iterator.
+and processing all nodes concurrently when used as a parallel iterator.
 Tampering with the cursors of Container is prohibited while the iterator object
 exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
 whose @fa<iterator_specification> denotes this object). The iterator object
@@ -1346,15 +1142,6 @@
 @xcode<   @b<function> Iterate (Container : @b<in> Map)
       @b<return> Map_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
 
-!corrigendum A.18.6(51.2/3)
-
-@drepl
-@xcode<   @b<function> Iterate (Container : @b<in> Map; Start : @b<in> Cursor)
-      @b<return> Map_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<   @b<function> Iterate (Container : @b<in> Map; Start : @b<in> Cursor)
-      @b<return> Map_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
 !corrigendum A.18.6(94.1/3)
 
 @drepl
@@ -1377,13 +1164,13 @@
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 @dby
-@xindent<Iterate returns a parallel and reversible iterator object (see 5.5.1) 
+@xindent<Iterate returns an iterator object (see 5.5.1) 
 that will generate a value for a loop parameter (see 5.5.2) designating each 
 node in Container, starting with
 the first node and moving the cursor according to the successor relation when
 used as a forward iterator, and starting with the last node and moving
 the cursor according to the predecessor relation when used as a reverse 
-iterator, and starting with all nodes concurrently when used as a parallel 
+iterator, and processing all nodes concurrently when used as a parallel 
 iterator. Tampering with the cursors of Container is prohibited while the 
 iterator object
 exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
@@ -1391,44 +1178,6 @@
 needs finalization.>
 
 
-!corrigendum A.18.6(94.3/3)
-
-@drepl
-@xcode<@b<function> Iterate (Container : @b<in> Map; Start : @b<in> Cursor)
-   @b<return> Map_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<@b<function> Iterate (Container : @b<in> Map; Start : @b<in> Cursor)
-   @b<return> Map_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
-!corrigendum A.18.6(94.4/3)
-
-@drepl
-@xindent<If Start is not No_Element and does not designate an item in Container,
-then Program_Error is propagated. If Start is No_Element, then Constraint_Error is
-propagated. Otherwise, Iterate returns a reversible iterator object (see 5.5.1) that will generate a
-value for a loop parameter (see 5.5.2) designating each node in Container, starting with
-the node designated by Start and moving the cursor according to the successor relation
-when used as a forward iterator, or moving
-the cursor according to the predecessor relation when used as a reverse iterator.
-Tampering with the cursors of Container is prohibited while the iterator object
-exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
-whose @fa<iterator_specification> denotes this object). The iterator object
-needs finalization.>
-@dby
-@xindent<If Start is not No_Element and does not designate an item in Container,
-then Program_Error is propagated. If Start is No_Element, then Constraint_Error is
-propagated. Otherwise, Iterate returns a parallel and reversible iterator object 
-(see 5.5.1) that will generate a
-value for a loop parameter (see 5.5.2) designating each node in Container, 
-starting with the node designated by Start and moving the cursor according to 
-the successor relation when used as a forward iterator, or moving
-the cursor according to the predecessor relation when used as a reverse iterator, 
-and starting with all nodes concurrently when used as a parallel iterator.
-Tampering with the cursors of Container is prohibited while the iterator object
-exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
-whose @fa<iterator_specification> denotes this object). The iterator object
-needs finalization.>
-
 !corrigendum A.18.8(49.1/3)
 
 @drepl
@@ -1447,7 +1196,7 @@
 @xcode<@b<function> Iterate (Container : @b<in> Set)
    @b<return> Set_Iterator_Interfaces.Parallel_Iterator'Class;>
 
-!corrigendum A.18.8(85.1/3)
+!corrigendum A.18.8(85.2/3)
 
 @drepl
 @xindent<Iterate returns an iterator object (see 5.5.1) that will generate a
@@ -1458,16 +1207,17 @@
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 @dby
-@xindent<Iterate returns a parallel iterator object (see 5.5.1) that will 
+@xindent<Iterate returns an iterator object (see 5.5.1) that will 
 generate a value for a loop parameter (see 5.5.2) designating each element
 in Container, starting with the first element and moving the cursor according 
-to the successor relation when used as a forward iterator, and starting with 
+to the successor relation when used as a forward iterator, and processing 
 all nodes concurrently when used as a parallel iterator.
 Tampering with the cursors of Container is prohibited while the iterator object
 exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 
+
 !corrigendum A.18.9(61.1/3)
 
 @drepl
@@ -1477,15 +1227,6 @@
 @xcode<   @b<function> Iterate (Container : @b<in> Set)
       @b<return> Set_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
 
-!corrigendum A.18.9(61.2/3)
-
-@drepl
-@xcode<   @b<function> Iterate (Container : @b<in> Set; Start : @b<in> Cursor)
-      @b<return> Set_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<   @b<function> Iterate (Container : @b<in> Set; Start : @b<in> Cursor)
-      @b<return> Set_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
 !corrigendum A.18.9(113.1/3)
 
 @drepl
@@ -1508,56 +1249,17 @@
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 @dby
-@xindent<Iterate returns a parallel and reversible iterator object (see 5.5.1) that will generate a
+@xindent<Iterate returns an iterator object (see 5.5.1) that will generate a
 value for a loop parameter (see 5.5.2) designating each element in Container, starting with
 the first element and moving the cursor according to the successor relation when
 used as a forward iterator, and starting with the last element and moving
 the cursor according to the predecessor relation when used as a reverse iterator, and
-starting with all nodes concurrently when used as a parallel iterator.
+processing all nodes concurrently when used as a parallel iterator.
 Tampering with the cursors of Container is prohibited while the iterator object
 exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
 whose @fa<iterator_specification> denotes this object). The iterator object
 needs finalization.>
 
-!corrigendum A.18.9(113.3/3)
-
-@drepl
-@xcode<@b<function> Iterate (Container : @b<in> Set; Start : @b<in> Cursor)
-   @b<return> Set_Iterator_Interfaces.Reversible_Iterator'Class;>
-@dby
-@xcode<@b<function> Iterate (Container : @b<in> Set; Start : @b<in> Cursor)
-   @b<return> Set_Iterator_Interfaces.Parallel_Reversible_Iterator'Class;>
-
-!corrigendum A.18.9(113.4/3)
-
-@drepl
-@xindent<If Start is not No_Element and does
-not designate an item in Container, then Program_Error is propagated. If Start
-is No_Element, then Constraint_Error is propagated. Otherwise, Iterate returns
-a reversible iterator object (see 5.5.1) that will generate a value for a loop 
-parameter (see 5.5.2) designating
-each element in Container, starting with the element designated by Start and
-moving the cursor according to the successor relation when used as a forward
-iterator, or moving the cursor according to the predecessor relation when used
-as a reverse iterator. Tampering with the cursors of Container is prohibited while
-the iterator object exists (in particular, in the @fa<sequence_of_statements> of
-the @fa<loop_statement> whose @fa<iterator_specification> denotes this object).
-The iterator object needs finalization.>
-@dby
-@xindent<If Start is not No_Element and does
-not designate an item in Container, then Program_Error is propagated. If Start
-is No_Element, then Constraint_Error is propagated. Otherwise, Iterate returns 
-a parallel and reversible iterator object (see 5.5.1) that will generate a 
-value for a loop parameter (see 5.5.2) designating
-each element in Container, starting with the element designated by Start and
-moving the cursor according to the successor relation when used as a forward
-iterator, or moving the cursor according to the predecessor relation when used
-as a reverse iterator, or all nodes concurrently when used as a
-parallel iterator. Tampering with the cursors of Container is prohibited while
-the iterator object exists (in particular, in the @fa<sequence_of_statements> of
-the @fa<loop_statement> whose @fa<iterator_specification> denotes this object).
-The iterator object needs finalization.>
-
 
 !corrigendum A.18.10(44/3)
 
@@ -1605,10 +1307,10 @@
 the @fa<loop_statement> whose @fa<iterator_specification> denotes this object).
 The iterator object needs finalization.>
 @dby
-@xindent<Iterate returns a parallel iterator object (see 5.5.1) that will 
+@xindent<Iterate returns an iterator object (see 5.5.1) that will 
 generate a value for a loop parameter (see 5.5.2) designating each element in
 Container, starting from the root node and proceeding in a depth-first order 
-when used as a forward iterator, and starting with all nodes concurrently when 
+when used as a forward iterator, and processing all nodes concurrently when 
 used as a parallel iterator. Tampering with the cursors of Container is 
 prohibited while the iterator object exists (in particular, in the 
 @fa<sequence_of_statements> of the @fa<loop_statement> whose 
@@ -1639,12 +1341,12 @@
 object needs finalization.>
 @dby
 @xindent<If Position equals No_Element, then Constraint_Error is propagated. 
-Otherwise, Iterate_Subtree returns a parallel iterator object (see 5.5.1) that 
+Otherwise, Iterate_Subtree returns an iterator object (see 5.5.1) that 
 will generate a value for a loop parameter (see 5.5.2) designating each element 
 in the subtree rooted by the node designated by Position, starting from the 
 node designated by Position and
-proceeding in a depth-first order when used as a forward iterator, and starting
-with all nodes in the subtree concurrently when used as a parallel iterator. 
+proceeding in a depth-first order when used as a forward iterator, and processing
+all nodes in the subtree concurrently when used as a parallel iterator. 
 If Position equals No_Element, then Constraint_Error is
 propagated. Tampering with the cursors of the container that contains the 
 node designated by Position is prohibited while the iterator object
@@ -1677,10 +1379,9 @@
 @fa<iterator_specification> denotes this object).
 The iterator object needs finalization.>
 @dby
-@xindent<Iterate_Children returns a parallel and reversible iterator object 
-(see 5.5.1) that will generate a
-value for a loop parameter (see 5.5.2) designating each child node of Parent. 
-If Parent equals
+@xindent<Iterate_Children returns an iterator object (see 5.5.1) that will 
+generate a value for a loop parameter (see 5.5.2) designating each child node 
+of Parent. If Parent equals
 No_Element, then Constraint_Error is propagated. If Parent does not designate a
 node in Container, then Program_Error is propagated. Otherwise, when used as 
 a forward iterator,
@@ -1688,7 +1389,7 @@
 moving the cursor as per the function Next_Sibling; when used as a reverse
 iterator, the nodes are designated starting with the last child node and
 moving the cursor as per the function Previous_Sibling; when used
-as a parallel iterator, starting with all child nodes concurrently. Tampering 
+as a parallel iterator, processing all child nodes concurrently. Tampering 
 with the cursors of
 Container is prohibited while the iterator object exists (in particular,
 in the @fa<sequence_of_statements> of the @fa<loop_statement> whose

Questions? Ask the ACAA Technical Agent