MultiChor: Census Polymorphic Choreographic Programming with Multiply Located Values
Mako Bates, Syed Jafri, Joseph P. Near
TL;DR
MultiChor is presented, a library for writing and running choreographies as monadic values in Haskell that can express choreographies that are polymorphic over the number of participants.
Abstract
Choreographic programming is a concurrent paradigm in which a single global program called a choreography describes behavior across an entire distributed network of participants. Choreographies are easier to reason about than separate programs running in parallel, and choreographic programming systems can check for deadlocks statically. We present MultiChor, a library for writing and running choreographies as monadic values in Haskell. Unlike prior Haskell implementations, MultiChor does not require excess communication to handle Knowledge-of-Choice. Unlike all prior general-purpose choreographic languages, MultiChor can express choreographies that are polymorphic over the number of participants.
