program SuccDemo;

type
  Metasyntactical = (foo, bar, baz);

var
  m: Metasyntactical;
  c: Char;
  a: array [1 .. 7] of Integer;
  p: ^Integer;

begin
  m := Succ (foo);     { bar }
  c := Succ ('A', 4);  { 'E' }
  a [1] := 42;
  a [2] := Succ (a [1]);     { 43 }
  a [5] := Succ (a [2], 7);  { 50 }
  {$X+}
  p := @a [1];
  p := Succ (p);     { points to `a [2]' now }
  p := Succ (p, 3);  { points to `a [5]' now }
end.
