VDRD, chapter 10 (Feature adaptation), page 163

     Redeclaration rule

     Let `C' be a class and `g' a feature of `C'.   It  is
     valid  for `g' to be a redeclaration of a feature `f'
     inherited from a parent `B' of `C' if and only if the
     following conditions are satisfied.

        1 No effective feature of `C' other than  `f'  and
          `g' has the same final name.

        2 The signature of `g' conforms to  the  signature
          of `f'.

        3 If `g' is a routine, its Precondition,  if  any,
          begins with require else (not just require), and
          its Postcondition, if any,  begins  with  ensure
          then (not just ensure).

        4 If the redeclaration is a  redefinition  (rather
          than an effecting) the Redefine subclause of the
          Parent part for `B' lists the final name of  `f'
          in its Feature_list.

        5 If `f' is inherited as effective,  then  `g'  is
          also effective.

        6 If `f' is an attribute, `g' is an attribute, `f'
          and  `g'  are both variable, and their types are
          either both expanded or both non-expanded and
          (ISE Eiffel extension:) and they are either both
          stable or both non-stable.

        8 (ISE Eiffel temporary limitation)  For  every 
          element  `a'  of the signature of `f', if `b' is
          the  corresponding  signature  element  in  `g', 
          the  types  of  `a'  and  `b'  are  either  both 
          expanded  or both non-expanded.
