Ausgehend von diesem Problem und meinem Lösungsansatz mit Revisions-Dictionary, frage ich mich wie man eine Art copy-on-write am sinnvollsten umsetzen könnte.
Hauptproblem dabei sind die Mutual-Typen, da sich deren Manipulation durchschlägt. Wie würdet Ihr das abfangen?
Meine Ideen gehen hier von Arbeitkopie erstellen mit explizitem commit() bis hin zu copy-on-read (hier wäre die jeweils letzte Aktion nach einem lesenden Zugriff implizit revisioniert, Zwischenversionen wären genauso verloren).
Ich tendiere eher zu Ersterem, aber beide Wege haben halt gewisse Vor- und Nachteile.