Persistent Data Structures (Version Control)
Partial Full Confluently Purely
update
v0
Ephemeral
v0
Partial persistence
v0
Full persistence
v0
Confluently persistence Purely functional
car cdr version DAG version tree version list
update
v1 v1 v1 v2 v1 v2
never modify
- nly create new pairs
- nly DAGs
v2 v v2 v
query only
v3 v v6 v
2
v3 v v3 v4 v3 v4
y
v4
updates at leaves any version can be copied query all versions
v5
update/merge/query all versions
v5 v5 v5
query all versions
Retroactive
v v v v v
1
v6
query
v6
update & query
v0 v1 v2 v3 v4
update & query all versions updates in the past propragate