~/talk

Grove: A Bidirectionally Typed Collaborative Structure Editor Calculus

Talkat POPL 2025 · 2025-01-19..01-25· [developer-experience]
links:none on file
links:none on file
links:none on file
links:none on file
name:Eric Zhao
links:none on file
slides:none on file

Paper claims a version-control model that removes patch synthesis and three-way merge by making edits commute: edits become no diff or merge commutative operations so remote actions can be applied in any order. The core datatype is a labeled directed multigraph where all edits are edges-only edits (insert/delete, deletions are permanent), graphs decompose into groves that explicitly represent relocation and unicyclic conflicts, a bidirectional gradual typing/localization gives total static meaning for all states, the metatheory is mechanized in Agda, and a Grove Workbench generates OCaml artifacts (evaluated functional).

AI-written summary · about

  1. 0:00Introduction
  2. 1:08Why version control is a programming languages problem
  3. 2:58Patch-based merging problems
  4. 5:26Eliminating diff with structure editing
  5. 7:54Merging in structure editors
  6. 8:59Commutative Replicated Data Types for merging
  7. 10:21Grove patch language
  8. 11:47Graph-based program state
  9. 15:14Collaborative structure editing
  10. 17:01Conflict representation in Grove
  11. 18:46Type error localization in Grove
  12. 19:50Live collaborative programming
  13. 20:31Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.