http://lambda-the-ultimate.org/node/4865#comment-78251
On 10/01/2014 12:12 PM, Jonathan S. Shapiro wrote:
Can you send out a link to Oleg's LtU post? I can't seem to find it.On Fri, Jan 10, 2014 at 6:06 AM, Sandro Magi <[email protected] <mailto:[email protected]>> wrote:Oleg just posted an interesting reference to an old paper [1] on LtU regarding overloading. Seems like it's exactly the type of overloading that Jonathan is looking for: The introduction of unrestricted overloading in languages with type systems based on implicit parametric polymorphism generally destroys the principal type property: namely that the type of every expression can uniformly be represented by a single type expression over some set of type variables. As a consequence, type inference in the presence of unrestricted overloading can become a NP-complete problem. In this paper we define the concept of parametric overloading as a restricted form of overloading which is easily combined with parametric polymorphism. Parametric overloading preserves the principal type property, thereby allowing the design of efficient type inference algorithms. We present sound type deduction systems, both for predefined and programmer defined overloading. Finally we state that parametric overloading can be resolved either statically, at compile time, or dynamically, during program execution. No free version seems accessible unfortunately. Oleg summarizes thusly: His paper introduced what is in modern terms a local type class with local instances. He cleverly avoids the incoherence problem by a restriction (checked by the type checker) that an overloaded operation doesn't escape the scope of its (local) class declaration. The paper proves principal types, shows the inference algorithm and describes two resolutions strategies, static and dynamic. The static strategy is essentially monomorphising (not quite different from template instantiation in C++) and the dynamic strategy is essentially RTTI. (The paper does not treat polymorphic recursion or higher-rank types, which make monomorphising impossible.) Sandro [1] http://link.springer.com/chapter/10.1007%2F3-540-19027-9_9 _______________________________________________ bitc-dev mailing list [email protected] <mailto:[email protected]> http://www.coyotos.org/mailman/listinfo/bitc-dev _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
