Key-value map with snapshots
Build a key-value map that supports set, get and snapshot. snapshot() returns an ID, and you can then read what any key held as of that snapshot. Avoid copying the whole map at each snapshot: keep per-key version lists and binary search them.
No answer yet. Write the first one; the best answer gets endorsed.
