Sébastien Doeraene <sjrdoera...@gmail.com> writes: > data, aka Implementation<Foo>). Besides, solution 1 is not acceptable for > Mozart, because sometimes data must mutate, and change their type. And > sometimes the mutated type occupies more memory than the previous one. So, > following me, it does not make sense to compare our model to model 1.
I really don't understand this objection. With "tag on data", when an object A must mutate into an object B: create B, then overwrite A with a ref to B. > It also means that the tag for an aggregate > is repeated everywhere it is referenced. > > No because only one node is allowed to point to a given Implementation<T>. > Other nodes that wish to point to that Implementation<T> have to be a > Reference > to the former node. > > However, well, yes, you have those extra Reference types everywhere. So in > some > sense the tag for an aggregate is indeed repeated everywhere it is referenced. Indeed, I meant that the "price" of that tag was paid at every point of reference; whether it was paid as a ref tag or as data tag. Cheers, --Denys _________________________________________________________________________________ mozart-hackers mailing list mozart-hackers@mozart-oz.org http://www.mozart-oz.org/mailman/listinfo/mozart-hackers