Records may inherit their initial fields from a previously defined record. For instance, in the defintions :
abc = record
def : integer ;
ghi : longinteger
end ;
jkl = record (abc)
mno : real
end ;
Record type jkl contains the fields def, ghi, and mno. Note that no fields in the record being inherited (the parent record) may be procedures, function, or records. This restriction can
normally be gotten around by using a "deferred reference" :
pq = record
rs : procedure (i : integer)
end ;
tu = record (pq)
vw : real
end ;
Is not valid, but if you define :
trs = procedure (i : integer) ;
pq = record
rs : trs
end ;
tu = record (pq)
vw : real
end ;
Then it will be compile, and is identical in function.