In the type rule for assignments, the result type
is chosen to be that of the lvalue. Alternatively, the
result type could have been chosen to be that of the expression.
Show that these two variations permit different programs.
An intermediate type rule for method overloading is the following:
It is permitted to match formal and actual argument types using
assignment compatibility, but this must only be possible for a single
method.
Phrase the corresponding formal type rule.