> Capabilities narrow (or select, or designate) behaviors. They don't narrow
types.
From a type theory standpoint I think this statement is void. If two signatures contain different methods that operate on the same representation, the signatures have different types. If the signatures are then partially evaluated over their first argument (i.e. are turned into capabilities that embed a name), the resulting closures have different types.
Could somebody go try typing it into ML and report what happens? ML gets all of this right, and I don't know the correct terminology to speak about this properly. Also, I don't have a copy of SML running nearby and I'm in the last 12 minutes of a paper deadline.
Jonathan S. Shapiro, Ph. D.
IBM T.J. Watson Research Center
Email: shapj@us.ibm.com
Phone: +1 914 784 7085 (Tieline: 863)
Fax: +1 914 784 7595