This compatibility requirement seems to imply that the control variable need not be an integer type.  Does this mean that
 
    Var  letter: char;
 
    for  letter := 'A' to 'Z'  do
 
is legitimate, or that the definers of the language expected that might eventually be allowed?  Or does it merely mean that the magnitudes must match the range, so that
 
    Var  num: smallint;
 
    for  num := 20000 to 40000  do
 
is illegal?
 
 
In a message dated 4/26/2013 4:28:41 P.M. Eastern Daylight Time, jonas.maebe@elis.ugent.be writes:
: The initial-value and the final-value of a sequence-iteration
: of an iteration-clause of a for-statement shall be of a type
: compatible with the type of control-variable of the for-statement.
: The initial-value and the final-value shall be
: assignment-compatible with the type possesed by the
: control-variable if the statement of the for-statement
: is executed.