Abstract. Many program optimisations involve transforming a pro-gram in direct style to an equivalent program in continuation-passing style. This paper investigates the theoretical underpinnings of this trans-formation in the categorical setting of monads. We argue that so-called absolute Kan Extensions underlie this program optimisation. It is known that every Kan extension gives rise to a monad, the codensity monad, and furthermore that every monad is isomorphic to a codensity monad. The end formula for Kan extensions then induces an implementation of the monad, which can be seen as the categorical counterpart of continuation-passing style. We show that several optimisations are instances of this scheme: Church representations and impleme...
In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving progra...
Context: Reynolds showed us how to use continuation-passing style and defunctionalization to transfo...
Some programs are not merely sets of batch instructions performed in isolation. They interact, eithe...
Many program optimisations involve transforming a program in direct style to an equivalent program i...
One way of interpreting a left Kan extension is as taking a kind of “partial colimit”, whereby one r...
AbstractThe aim is to apply string-rewriting methods to compute left Kan extensions, or, equivalentl...
The monads used to model effectful computations traditionally concentrate on the 'destinati...
In this paper, we will discuss three semantically distinct scope assignment strategies: traditional ...
We show that any monad whose unit and extension operations are expressible as purely functional term...
This paper proposes that the meanings of some natural language expressions should be thought of as f...
Delimited continuations are more expressive than traditional abortive continuations and they apparen...
Plotkin's -value calculus is sound but incomplete for reasoning about -transfor-mations on prog...
Monads have become a powerful tool for structuring effectful computations in functional program-ming...
Higher-order program transformations raise new challenges for proving properties of their output, si...
Kleisli categories over monads have been used in denotational semantics to describe functional langu...
In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving progra...
Context: Reynolds showed us how to use continuation-passing style and defunctionalization to transfo...
Some programs are not merely sets of batch instructions performed in isolation. They interact, eithe...
Many program optimisations involve transforming a program in direct style to an equivalent program i...
One way of interpreting a left Kan extension is as taking a kind of “partial colimit”, whereby one r...
AbstractThe aim is to apply string-rewriting methods to compute left Kan extensions, or, equivalentl...
The monads used to model effectful computations traditionally concentrate on the 'destinati...
In this paper, we will discuss three semantically distinct scope assignment strategies: traditional ...
We show that any monad whose unit and extension operations are expressible as purely functional term...
This paper proposes that the meanings of some natural language expressions should be thought of as f...
Delimited continuations are more expressive than traditional abortive continuations and they apparen...
Plotkin's -value calculus is sound but incomplete for reasoning about -transfor-mations on prog...
Monads have become a powerful tool for structuring effectful computations in functional program-ming...
Higher-order program transformations raise new challenges for proving properties of their output, si...
Kleisli categories over monads have been used in denotational semantics to describe functional langu...
In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving progra...
Context: Reynolds showed us how to use continuation-passing style and defunctionalization to transfo...
Some programs are not merely sets of batch instructions performed in isolation. They interact, eithe...