Gera.2.base classes

That is so erlang ;-). so in that case, in order to replace objectAtIndex:3 in an array, we'd have to create a new MutableArray, replace objectAtIndex:3 with our new object and return a new Immutable Array, no?