Hi again Gavin!
> Ahh. That explains the distinction I felt but couldn't articulate well.
It's subtle, I think, particularly if you haven't spent years thinking about objects.
> This is very interesting. Some year ago, I did some work on a distributed
> scheme, and some of the concepts seem very similar. The most appealing
> thing for me in the distributed scheme was that objects, because of the
> lexical scoping of scheme, could only talk to objects within their scope.
> This removed a number of security issues, and also made writing distributed
> objects/applications easier... the objects could be written like objects,
> not stateless servers.
Exactly. If you look closely at E, you'll find that it's heavily lambda-abstraction based as well, with local state and assignment.
> I guess in a distributed scheme, you could look at every lambda as an
> anonymous capability?
Assuming that the lambda expression somehow expressed access rights as well as functionality, yes.
> It seems to me that there must be some very interesting relations between
> capabilities and type composition.
I think so, too, intuitively. I think that intuition might be bolstered by learning more about some of the work in proof-carrying code, which often includes proof of type safety.
-- Please reply to <mailto:email@example.com> using PGP. My public key can be found at <http://pgpkeys.mit.edu:11371>. PGP can be found at <http://web.mit.edu/network/pgp.html>. Beginning 11/1/1999, unenciphered e-mail will be immediately deleted unread. Thank you.