Well, not really. Consider the following:
type
ItemPtr = ^Item;
SomeOtherType = record
a,b,c:integer;
end;
Item = record
Data:string;
Next:ItemPtr;
end;
The first time the parser hits "Item", its not defined.