Basically, if I remember correctly, it's a tree. Then, if you apply a transformation on the tree, the unchanged nodes are shared, and new ones are created.
However, due to the way it is made, one can still access the data before each transformation, and so with the least memory used.
I think this is applicable in a context like git, and I specifically remember that git was the example used for this structure, but I can't seem to remember its name. Anyone help?
I've tried searching for tree variants, and I just can't seem to find it.