A minor comment on the readonly / mutable discussion: maybe we should be using "writable" instead of "readonly"?
It seems to me that trying to write down lattices / subtyping / convertibility relationships is complicated by the fact that "readonly" is a *constraint* on what can be done by code, and "immutable" is a *permission* on what can be done: namely permission to know that accessing a location twice will produce the same result (or a source of proof objects that two such accesses are the same, etc.). If we substitute writable for readonly, we're talking uniformly about permissions, which may make things easier. Indeed, once we have pure permissions writable and immutable almost become orthogonal: we could redefine immutable to mean "quality that won't change due to some other code" and then meaningfully pass in a "writable and (otherwise) immutable" variable. Not that such a redefinition would necessarily be a good idea, but it does seem another advantage of uniform permissions vs. a mix of permissions and constraints. Geoffrey _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
