Interestingly, Ct copies all its data to a special protected area so it can avoid having any aliases to the data. It also garbage collects (reference counts) this memory, and uses pass-by-value to further avoid aliasing problems. As far as that goes, D's foundation of gc and invariant types should serve this quite well.