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.