SparseArray::Set() is now functional and returns a new header with an incremented version count.
fixed typo
version-based rollback for SparseArray