There are now a number of bidirectional programming languages, where every program can be read both as a forward transformation mapping one data structure to another and as a reve...
J. Nathan Foster, Alexandre Pilkiewicz, Benjamin C...
Dynamic binding and delimited control are useful together in many settings, including Web applications, database cursors, and mobile code. We examine this pair of language feature...
Monads are commonplace programming devices that are used to uniformly structure computations with effects such as state, exceptions, and I/O. This paper further develops the monad...
Neil Ghani, Patricia Johann, Tarmo Uustalu, Varmo ...
module is a programming abstraction that simultaneously generalizes -abstractions, records, and mutually recursive definitions. Although various mixin module type systems have bee...
Concurrency, as a useful feature of many modern programming languages and systems, is generally hard to reason about. Although existing work has explored the verification of concu...