In S06, a wrong word: "Alternately, optional fields may be marked by supplying a default value. " should be parameters, not fields.
Now here is my question: Params are bound in declaration order, not call order, and may refer to previous parameters. But what if a multi makes use of your intentional mechanism of having value constraints, namely the use of named subtypes. You don't know if the parameter is suitable for the subtype until its value is known. And the multis have their named parameters in opposite orders, or similar names with different contexts. It's not supposed to process the argument list until after it decides with function to call. But you also want a mechanism to distinguish alternatives based on values. What gives? --John