While rooting after a mutation works just fine - by directing rooting through a has-changed mechanism - simply using up throws away the fact that something's changed.
For instance, this fails
[].zipper.down.down.replace(2).up.root.should == []
[].zipper.down.down.replace(2).root.should == []
# Note the lack of up ---^
Fix issue #24: navigating up (as one would during a map on a preorder…
… traversal of a tree of sufficient depth) would forget that mutations had occurred.