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 b...
We present a unifying solution to the problem of fusion of functions, where both the producer function and the consumer function have one accumulating parameter. The key idea in t...
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 ...
The construction of reliable concurrent and distributed systems is an extremely difficult endeavour. For complex systems, it requires modular development strategies based on prec...