Gauging interest in an optional mapping function for transforming changes

Hey Tim - thanks for the tidy, useful library. I'm wondering if you have interest in the following idea[1] --

I have a use-case where I'd like to keep a transformed object in sync with its "source" object. A simple solution is teaching `apply()` to take an optional mapping function that transforms each change before applying it to the target object. That lets me keep my transformed object's structure, and easily mirror changes made to the source.

I've included one barebones demonstration that's a simplified version of my use-case: displaying a tree-view of objects inside a container.

The concept seems generally useful, and potentially powerful. What are your thoughts on adding it to the library?

*[1] - This code is __not__ meant to be production-ready, just to be a quick/dirty implementation.*