Hi Stef,

Thanks for the explanation frank
btw (did you dd it in the class comment because it would be gorgeous).
I learned something today so I'm happy.
Now what is the typical use case for such persistent structure?

Stef

Immutable data structures are used extensively in functional languages in which data structures are immutable by default. One benefit of the approach is when�multi-threading you don't need to synchronise changes to such structures or objects containing them. For example all Clojure's data-structures are immutable by default [1].�There's been a lot of interesting work on providing performance guarantees so that creating copies avoids scaling with linear time [2], while still having sensible access and iteration performance.�

[1]�http://clojure.org/data_structures#Data%20Structures-Collections
[2] http://clojure.org/functional_programming#Functional%20Programming--Immutable%20Data%20Structures

Apologies if I'm stating the obvious

Nick