Lecture notes in computer science vol:2743 pages:176-200
ECOOP edition:17 location:Darmstadt date:21-23 July 2003
External uniqueness is a surprising new way to add unique references to an OOPL. The idea is that an externally unique reference is the only reference into an aggregate from outside the aggregate. Internal references which do not escape the boundary of the aggregate axe innocuous and therefore permitted. Based on ownership types, our proposal not only overcomes an abstraction problem from which existing uniqueness proposals suffer, it also enables many examples which axe inherently not unique, such as a unique reference to a set of links in a doubly-linked list, without losing the benefits of uniqueness.