Boomerang: A bidirectional programming language for ad-hoc data
seas.upenn.edu
seas.upenn.edu
The basic point is being able to define maps between data structures and then being able to update either end of the map and see the results transformed on the other - which is what Unison does at the filesystem/machine level; this is the same concept taken to the data structure level. It's hard stuff to get right, but it is so tantalizing.
It would be interesting to grasp what use it proves.
Also, David Lutterkort at RedHat has developed an extension of Boomerang [http://augeas.net] that folks may find interesting...