Chocola: integrating futures, actors, and transactions
Janwillem Swalens, Joeri De Koster, Wolfgang De Meuter · 2018
Developers often combine different concurrency models in a single program, in each part of the program using the model that fits best. Many programming languages, such as Clojure, Scala, and Haskell, cater to this need by supporting different concurrency models. However, they are often combined in an ad hoc way and the semantics of the combination is not always well defined.