A persistent (immutable) data structure returns a new version on “update” instead of changing in place. Structural sharing means the new version reuses most of the old nodes, so copying is cheap (useful for undo/history and safer concurrency).