You mean from here: Harmony

 Quote:
Introduction

Harmony is framework for defining, updating, and synchronizing views over strings, trees, and relations. It can be used, for example, to synchronize the bookmark files of several different web browsers, to convert address books represented in vCard to CSV, and to map between BiBTeX and RIS-formatted bibliographic databases.

A central theme of the project is bringing ideas from programming languages to bear on a set of problems more commonly regarded as belonging to the purview of databases. Views are usually discussed in the context of databases, but actually arise in a host of applications across many diverse areas of computing. In many of these applications, is necessary to apply an update to the view, and have the update be reflected back on the source. Unfortunately, the view update problem remains largely unsolved; except in very simple cases, views are read-only. Our goal is to develop programming languages in which programmers can specify both how to calculate a view, and how to translate updates to a view back to the source, and to use these bidirectional programs—called lenses—to build converters and synchronizers for a variety of real-world data formats.