The monads used to model effectful computations traditionally concentrate on the \"destination\" - the final results of the program. However, sometimes we are also interested in the \"journey\" - the intermediate course of a computation - especially when reasoning about non-terminating interactive systems. In this article we claim that a necessary property of a monad for it to be able to describe the behaviour of a program is complete iterativity. We show how an ordinary monad can be modified to disclose more about its internal computational behaviour, by applying an associated transformer to a completely iterative monad. To illustrate this, we introduce two new constructions: a coinductive cousin of Cenciarelli and Moggi's generalised resu...
Abstract. Iterative monads, introduced by Calvin Elgot in the 1970’s, are those ideal monads in whic...
Many program optimisations involve transforming a program in direct style to an equivalent program i...
Abstract. Monads are used in functional programming as a means of modeling and encapsulating computa...
The monads used to model effectful computations traditionally concentrate on the \"destination\" - t...
In functional programming, monads are supposed to encapsulate computations, effectfully producing th...
Some programs are not merely sets of batch instructions performed in isolation. They interact, eithe...
Abstract. We model notions of computation using algebraic operations and equations. We show that the...
We model notions of computation using algebraic operations and equations. We show that these generat...
Resumptions are a valuable tool in the analysis and design of semantic models for concurrent program...
AbstractWhat structure is required of a set so that computations in a given notion of computation ca...
AbstractResumptions appear in many forms as a convenient abstraction, such as in semantics of concur...
We extend categorical semantics of monadic programming to reversible computing, by considering monoi...
Resumptions appear in many forms as a convenient abstraction, such as in semantics of concurrency an...
Abstract. Completely iterative algebras (cias) are those algebras in which recur-sive equations have...
The Dijkstra and Hoare monads have been introduced recently for capturing weak-est precondition comp...
Abstract. Iterative monads, introduced by Calvin Elgot in the 1970’s, are those ideal monads in whic...
Many program optimisations involve transforming a program in direct style to an equivalent program i...
Abstract. Monads are used in functional programming as a means of modeling and encapsulating computa...
The monads used to model effectful computations traditionally concentrate on the \"destination\" - t...
In functional programming, monads are supposed to encapsulate computations, effectfully producing th...
Some programs are not merely sets of batch instructions performed in isolation. They interact, eithe...
Abstract. We model notions of computation using algebraic operations and equations. We show that the...
We model notions of computation using algebraic operations and equations. We show that these generat...
Resumptions are a valuable tool in the analysis and design of semantic models for concurrent program...
AbstractWhat structure is required of a set so that computations in a given notion of computation ca...
AbstractResumptions appear in many forms as a convenient abstraction, such as in semantics of concur...
We extend categorical semantics of monadic programming to reversible computing, by considering monoi...
Resumptions appear in many forms as a convenient abstraction, such as in semantics of concurrency an...
Abstract. Completely iterative algebras (cias) are those algebras in which recur-sive equations have...
The Dijkstra and Hoare monads have been introduced recently for capturing weak-est precondition comp...
Abstract. Iterative monads, introduced by Calvin Elgot in the 1970’s, are those ideal monads in whic...
Many program optimisations involve transforming a program in direct style to an equivalent program i...
Abstract. Monads are used in functional programming as a means of modeling and encapsulating computa...