Is it hard to make pointee data mutable? E.g. if have: ------ struct RCString { private char[] data; private @mutable int* counter; } ------ So for optimiser (in case of immutable) this looks like ------ struct RCString { private char[] data; private @mutable void* counter; // pointer to garbage } ------