It is a prototype for a structured editor written in ATS and compiled to JS.
A structured editor allows the user to edit the abstract syntax tree, instead of plain text.
The editor is based on "Modeless Structure Editing" by Bernard Sufrin and Oege de Moor.
We use linear types to "hide" the imperative implementation behind a purely linear-functional interface.