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

Reply via email to