>float or integer coefficients
  X := X+1;   or X := X+1.0;
One will be illegal.  I think you'll have to use
  X := X+This_Type(1);