Ciao, leggendo degli spezzoni di codice delle IOI ho trovato un sacco di costrutti Pascal dei quali i libri che ho non parlano, roba del tipo

codice:
type r=record
codice:
with y do
codice:
new(x);
codice:
^INTEGER
codice:
set of
codice:
(i in a*b)
codice:
v:-c;
[ho indicato solo il punto problematico per brevità, se lo richiede posto l'intero codice]

Qualcuno saprebbe dirmi la loro funzione, o meglio ancora indicarmi in buon manuale online in cui sono spiegati?

Grazie a tutti anticipatamente