VUAR, chapter 22 (Type checking), page 369

     Consider an export-valid call of target `target'  and
     feature  name `fname' appearing in a class `C'.  (For
     an Unqualified_call take  `target' to  be `Current'.)
     Let `ST' be the type of `target',  `S' the base class
     of `ST',  and `sf' the feature  of final name `fname'
     in `S'. Let `D' be a  descendant of `S', and `df' the
     version of `sf' in `D'.  The call  is  argument-valid
     for  `D'  if  and  only if it satisfies the following
     four conditions:

        1 The number of actual arguments is  the  same  as
          the  number of  formal  arguments  declared  for
          `df'.

        2 Every actual argument, if any, conforms  to  the
          the corresponding formal argument of `df'.

        3  If  `target'  is   itself   a   Call,   it   is
          (recursively) argument-valid for `D'.

        4 If any of the actual arguments is of the Address
          form `$ fn', `fn' is the final name of a feature
          of `C' which is not a constant attribute.
