







A friendly programming language from the future.
atproto-experiments - Ha Ja Ba Ra La
A foundation for building tools on the AT Protocol using Unison Programming Language.
A Categorical Theory of Patches
When working with distant collaborators on the same documents, one often uses a version control system, which is a program tracking the history of files and helping importing modifications brought by others as patches. The implementation of such a system requires to handle lots of situations depending on the operations performed by users on files, and it is thus difficult to ensure that all the corner cases have been correctly addressed. Here, instead of verifying the implementation of such a system, we adopt a complementary approach: we introduce a theoretical model, which is defined abstractly by the universal property that it should satisfy, and work out a concrete description of it. We begin by defining a category of files and patches, where the operation of merging the effect of two coinitial patches is defined by pushout. Since two patches can be incompatible, such a pushout does not necessarily exist in the category, which raises the question of which is the correct category to represent and manipulate files in conflicting state. We provide an answer by investigating the free completion of the category of files under finite colimits, and give an explicit description of this category: its objects are finite sets labeled by lines equipped with a transitive relation and morphisms are partial functions respecting labeling and relations.
mergiraf
A syntax-aware git merge driver for a growing collection of programming languages and file formats.
An Algebraic Approach to Bi-directional Updating
In many occasions would one encounter the task of maintaining the consistency of two pieces of structured data that are related by some transform — synchronising bookmarks in different web browsers, the source and the view in an editor, or views in databases, to name a few. This paper proposes a formal model of such tasks, basing on a programming language allowing injective functions only. The programmer designs the transformation as if she is writing a functional program, while the synchronisation behaviour is automatically derived by algebraic reasoning. The main advantage is being able to deal with duplication and structural changes. The result will be integrated to our structure XML editor in the Programmable Structured Document project.

Peter van Hardenberg - Ink and Switch, Automerge
DLS 2020 Keynote by Vanessa Freudenberg: Croquet. A Unique Collaboration Architecture
Syncthing
Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it’s transmitted over the internet.
Sync Panel Discussion - Sync (Sync)
Lee Byron (OpenAI) - Teaching Models to Collaborate
Integrating functional and imperative programming | Proceedings of the 1986 ACM conference on LISP and functional programming
We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system, and extends smoothly to incorporate mixed-language ...
Rust Programming Language
A language empowering everyone to build reliable and efficient software.

The Coalton Programming Language
A statically typed, functional programming language that compiles to Common Lisp
Bidirectionalization for free! (Pearl) | Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A bidirectional transformation consists of a function get that takes a source (document or value) to a view and a function put that takes an updated view and the original source back to an updated source, governed by certain consistency conditions ...

Electric | Agents on sync
Electric provides the data primitives and infra to build collaborative, multi-agent systems. Including Postgres Sync, Durable Streams, TanStack DB and PGlite.

Eventual Interoperability – Pieter Colpaert
A pragmatic approach to interoperability: model your data richly for your own needs, then allow the eventual creation of one‑to‑many alignments.
