166  Pascal Report  the part of the simple expressio'l that precedes the operator, and the  term that immediately  follows  he operator. The two operands of a  relational operator are the simple  1'.\  pressions that immediately precede  and follow the operator. The opel ;tnd of a sign in a simple expression is  the term that immediately  follov  ~  the sign. The operand of not  in a  factor is the factor following  not  The  order  of evaluation  01  the  operands  of an  operator  is  implementation-dependent. A Sl ill1dard program must not make any  assumption about this order. The I,' It operand might be evaluated before  or after the right operand, or they III ight be evaluated in parallel. In fact,  sometimes one operand might not 'Ie evaluated at all for some values of  the other operand. For example, I'valuating the expression  (j  *  (i  di  v  j))  when j  is zero mighl vidd zero on one implementation,  where on another implementati(  'II  It  might be an error due to the  division by zero.  The type of a factor is derived  I  to  III  the type of its constituent (e.g.,  variable or function). Ifthe const 11ucnt's type is a subrange, then the  type of the factor is the host type  111" the subrange; if the constituent's  type is a set type with a subrange .. IS its base type, then the type of the  factor is a set type with the host type of that subrange type as its base  type; otherwise, the type of the f;lCtor is the same as the type of the  constituent.  The symbol  nil possesses every pointer type and represents the nil  value.  A set constructor denotes a  ~et  value.  If there are no element  descriptions in the set constructor, 1 hen it denotes the empty set that is a  value of every set type. Otherwisl, the elements of the set value are  described by  the  element  descriptions  in  the  set  constructor.  All  expressions in the element descripl  H)JlS of a set constructor must have  the same type, which is the base tYlle  (If the type of the set constructor.  The type of a set constructor is  tpth packed and unpacked, and is  compatible with any other set type  I  hat has a compatible base type.  An element description consistlllg of a single expression describes  the element that has the value den(lled hy the expression. An element  description of the form  a .. b  dest ribes an element for each value  x  that satisfies a  <=  x  <=  b.  If  a  >  '.  then a .. b  denotes no elements.  The order of evaluation of the  expre~i.;ions  in an element description and 