Algebraic data, bidirectional transformations, and structured merge (by Aaron Steven White) — Semble