@techreport{overload:ODC94,
author={John Ophel and Dominic Duggan and Gordon Cormack},
title={Parametric Overloading and Liberal Resolution},
institution={{U}niversity of {W}aterloo},
note={Submitted to {\em Software--Practice and Experience}.
Available by sending e-mail to {\tt [EMAIL PROTECTED]}},
number={{CS}-94-06},
year=1994,
abstract={Overloading and parametric polymorphism have been combined in an
extension of ML. This paper motivates the work by presenting a
number of illustrative examples including mixed-mode arithmetic,
linear algebra, and variable-length parameter lists that demonstrate
the utility and expressiveness of this combination.
Also shown is how the use of both equality types and weak types
in the ML type system can be subsumed in the uniform framework of
overloading polymorphism, the latter by the overloading of reference
constructors.
To support several of these examples, the system supports overloading
with multi-variable type templates for overloaded identifiers. The
examples motivate the introduction of {\em liberal resolution},
a new strategy for resolving overloaded identifiers in a system
with an ML-like type system. Uncoupled liberal resolution is
identified as providing the best trade-off between extensibility
and useful typing. A type-checking algorithm is provided that
supports uncoupled liberal resolution and type checks all of the
examples in the paper. The appendix contains a proof of correctness
for this algorithm.}}