Lenses are an interesting data structure for representing sub-value access and updates within a value. They compose well functionally. They are used in Haskell, where the type system gives a little help. But this implementation in Clojure is interesting and shows potential. See also these slides and this video (needs login or Twitter) for more information about Lenses.