In a recent paper, Launchbury, Lewis, and Cook observe that some Haskell applications could benefit from a combinator mfix for expressing recursion over monadic types. We investigate three possible de nitions of mfix and implement them in Haskell. Like traditional xpoint operators, there are two approaches to the de nition of mfix: an unfolding one based on mathematical semantics, and an updating one based on operational semantics. The two definitions are equivalent in pure calculi but have different behaviors when used within monads. The unfolding version can be easily defined in Haskell if one restricts xpoints to function types. The updating version is much more challenging to dene in Haskell despite the fact that its definition is strai...
This paper is a tutorial on defining recursive descent parsers in Haskell. In the spirit of one-stop...
Code generation is the leading approach to making high-perfor-mance software reusable. Effects are i...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
Monads have become a popular tool for dealing with computational effects in Haskell for two signific...
This paper is a tutorial on defining recursive descent parsers in Haskell. In the spirit of one-stop...
AbstractFusion laws permit to eliminate various of the intermediate data structures that are created...
Monads have become a fundamental tool for structuring denotational semantics and programs by abstrac...
In a lazy functional language, the standard encoding of recursion in DSLs uses the host language's r...
This paper presents a monadic approach to incremental computation, suitable for purely functional la...
In functional programming, a popular approach to building recursive descent parsers is to model pars...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
This article describes a compiler generator, called Mímico, that outputs code based on the use of mo...
This article describes a compiler generator, called Mímico, that outputs code based on the use of mo...
This paper is a tutorial on defining recursive descent parsers in Haskell. In the spirit of one-stop...
Code generation is the leading approach to making high-perfor-mance software reusable. Effects are i...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
Monads have become a popular tool for dealing with computational effects in Haskell for two signific...
This paper is a tutorial on defining recursive descent parsers in Haskell. In the spirit of one-stop...
AbstractFusion laws permit to eliminate various of the intermediate data structures that are created...
Monads have become a fundamental tool for structuring denotational semantics and programs by abstrac...
In a lazy functional language, the standard encoding of recursion in DSLs uses the host language's r...
This paper presents a monadic approach to incremental computation, suitable for purely functional la...
In functional programming, a popular approach to building recursive descent parsers is to model pars...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
This article describes a compiler generator, called Mímico, that outputs code based on the use of mo...
This article describes a compiler generator, called Mímico, that outputs code based on the use of mo...
This paper is a tutorial on defining recursive descent parsers in Haskell. In the spirit of one-stop...
Code generation is the leading approach to making high-perfor-mance software reusable. Effects are i...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...