VFFD, chapter 5 (Features), page 69

     Feature Declaration rule

     A Feature_declaration appearing in a class  `C',  and
     whose  New_feature_list  contains one or more feature
     names `f1, ..., fn', is  valid  if  and  only  if  it
     satisfies all of the following conditions:

        1 Its Declaration_body describes a feature  which,
          according  to the rules of,  is one of: variable
          attribute,   constant   attribute,    procedure,
          function.

        2 None of the `fi' has the same  name  as  another
          feature  introduced  in `C' (in particular, `fi'
          is not the same name as `fj' for  different  `i'
          and `j').

        3 If the name of any of the `fi' is  the  same  as
          the  final  name  of  any inherited feature, the
          Declaration_body  satisfies  the   Redeclaration
          rule.

        4 If the  Declaration_body  describes  a  deferred
          feature,  then  none  of the `fi' is preceded by
          the keyword frozen.

        5 If any  of  the  `fi'  is  a  Prefix  name,  the
          Declaration_body  describes  an  attribute  or a
          function with no argument.

        6 If any  of  the  `fi'  is  an  Infix  name,  the
          Declaration_body   describes   a  function  with
          exactly one argument.

        7 If  the  Declaration_body   describes   a   once
          function,    the    result   type   is   not   a
          Formal_generic_name,  and  is  not  an  Anchored
          type.

        8 If  the  Declaration_body   describes   a   once
          function with a once key "PROCESS",  the  result
          type is separate.
