Runners of algebraic effects, also known as comodels, provide a mathematical
model of resource management. We show that they also give rise to a programming
concept that models top-level external resources, as well as allows programmers
to modularly define their own intermediate "virtual machines". We capture the
core ideas of programming with runners in an equational calculus
λcoop​, which we equip with a sound and coherent
denotational semantics that guarantees the linear use of resources and
execution of finalisation code. We accompany λcoop​ with
examples of runners in action, provide a prototype language implementation in
OCaml, as well as a Haskell library based on λcoop​.Comment: ESOP 2020 final version + online appendi