190  Pascal Report  11.4.  Predeclared Procedures  is packed, and has a component  tyr'~  that either is the same type as the  component type of T  or else,  i  I  ,;  contains another component  conformant array schema, is a  COI' formant type derived through the  component  schema  from  the  component  type  of T.  The  bound  identifiers  introduced  in  the  ind,'x  type  specification  denote  the  smallest and largest values  of the index type of the conform ant type.  11.4.1.  File handling procedures.  There are several predeclared  procedures that are specifically defi ned for use with textfiles. These are  described in detail in Section 12. The following procedures operate on  any file variable  f  (see Sections  6A.2  and 7.4).  In each of the following definiti< lIS. all occurrences of  f  denote the  same file non-text file variable, the  ~ymbols  v, vl, ... , vn represent  variables, and  e, e 1, ... , en  rep' 'sent expressions. Note that the  variables v, vl, ... ,  and vn are n· It actual variable parameters, and  thus they may be components of pal k.ed arrays or records.  Read and  Write oftextfiles are defined in Sel:tion 12.  Rewr it e ( f)  causes f  to ha\ e an empty sequence and to be in  generation mode.  Put (f)  is an error if  f  i:-. undefined or is not in generation  mode, or ifthe buffel variable  fi  is undefined. Appends  the value of  ff  to th,,' end of the sequence of  f.  Reset (f)  causes f  to be pl.lced in inspection mode, and the  position in its sequen,:e becomes the first position.  If  the  sequence  is  empty.  ' ('  f ( f)  becomes  true  and  ff  becomes  totally  undefined;  otherwise,  eaf (f)  becomes false and .  i  takes on the value of the first  component of the sequence.  Get(f)  is an error if  f  i-; undefined or if eaf (f)  is true.  Causes the position  I  n the sequence to be advanced to  the next component,  r  any, and  ff  to take on its value; if  no next component e ·,ists, eaf  (f)  becomes true and  fi  becomes totally undl'l'incd. 