On 2/17/2016 2:31 PM, Jonathan M Davis wrote:
We _could_ have something like @mutable on member variables which made them
mutable in spite of being in a const object and which made it illegal for that
type to ever be immutable, but we'd be forced to have an additional attribute on
the type itself (e.g. @contains_mutable) because of the opaque type issue, and
at that point, the compiler could just look at the attribute on the type to know
that it couldn't be immutable, and similar to abstract, it could then require
that any type that it's a member of t hen be marked with that attribute. So,
it's uglier than simply marking a member variable with @mutable, but it's
certainly feasible.

It would seem that implementing headconst as a type constructor would let people who wanted mutable members have their way, without introducing backdoors in const.

Reply via email to