72  Pascal User Manual  Notes:  Referencing a record  compon~nt  is essentially a simple linear  reconstruction of the outline. As an example, assume a variable  P  of  type Person and "create" the second of the model people.  A record defining Person can n:1W be fonnulated as:  type String15  =  packed a:ray  [1 .. 15]  of Char;  Status  =  (Married,  Wid wed,  Divorced,  Single);  Date  =  packed record  Year:  1900 .. 2)0;  Mo:  (Jan,  Feb  ~ar,  Apr,  May,  Jun,  Ju1,  Aug.  Sep,  Oct,  Nov,  Dec);  Day:  1.  .31;  end;  Natural  =  O .. Maxlnt;  Person  =  record  Name:  recor(  First,  Last:  String15 end;  Height:  Natl! ,,1  {  centimeters  };  Sex:  (Male ,'emale) ;  Birth:  Date;  Depdts:  Natl  dl;  case MS:  Sti  ll:;  of  Married,  v  j()wed:  (MDate:  Date);  Divorced:  :~II)ate:  Date;  Single:  ()  end { Person  }  ~.rstD:  Boolean);  1.  All field names must be distinct - even if they occur in  different variants.  2.  If  a variant is empty (i.e., has no fields), the fonn is:  c:  ()  3.  A field list can have only (Ille variant part and it must follow  the fixed part of the recon  1 .  4.  A variant may itself contaill a variant part; hence variant  parts can be nested.  5.  The scope of enumerated  t I  pe constant identifiers that are  introduced in a record typl: extends over the enclosing  block. 