Tipo de apuntador genérico (pointer) en Pascal

Turbo Pascal permite un tipo especial de definición de apuntador: genérico o no tipeado. Difiere del apuntador estándar en que no tiene un tipo base, no está definido como un puntero hacia algún tipo, sino simplemente como una variable de tipo pointer.

Ejemplo:

Varenlace : pointer;
  P1,P2    : ^integer;
  Q1,Q2    : ^char;
beginNew(P1);
  New(P2);
  P1^:=10;
  enlace:=P1;
  {enlace apunta a un apuntador de enteros}P2:=enlace;
  New(Q1);
  New(Q2);
  Q1^:='A';
  enlace:= Q1;
  {enlace apunta a un apuntador de carácter}Q2:=enlace;
  WriteLn('P1= ',P1^,' P2= ',P2^);
  WriteLn('Q1= ',Q1^,' Q2= ',Q2^)
end.

El resultado es: 

P1=10 P2=10
Q1=A  Q2= A