It seems that in some places it is needed to return noUpdateResult(func, null) instead of just null. Test case: ``` SnapTreeMap<Integer, Integer> m = new SnapTreeMap<Integer, Integer>(); m.put(5, 15); m.remove(10, 10); ```