Hmm. We can't have immutability and ref counting.
Lets just say, the only time ref counting should come into effect is IF it has been removed from the list. This way the list should consider it 'owned' by it.

This is where I say, immutability by itself isn't the problem. The problem is we are unable to attribute new behavior to another type without effecting the type system directly.

If we can add new behavior without effecting the payloads immutability, we can add e.g. ref counting as needed.

This is where my 'managed memory'[0] idea is coming into play.
In essence, managed memory would allow a mutable addition to any given heap allocated type (not including pointers).

So sure the payload is attributed as being immutable, but ref counting can still go on safely!

Of course this is a major addition and is no where near ready for DIP status, but hey, maybe a solution?

[0] http://wiki.dlang.org/User:Alphaglosined/ManagedMemory

Reply via email to