In a lazy functional language, the standard encoding of recursion in DSLs uses the host language's recursion, so that DSL algorithms automatically use the host language's least fixpoints, even though many domains require algorithms to produce different fixpoints. In particular, this is the case for DSLs implemented as Applicative functors (structures with a notion of pure computations and function application).We propose a recursion primitive afix that models a recursive binder in a finally tagless HOAS encoding, but with a novel rank-2 type that allows us to specify and exploit the effectsvalues separation that characterises Applicative DSLs. Unlike related approaches for Monads and Arrows, we model effectful recursion, not value recursion...
A recent paper by Graham Hutton and Diana Fulger (\"Reasoning about Effects: Seeing the Wood through...
We investigate the interplay between a modality for controlling the behaviourof recursive functional...
International audienceIn call-by-value languages, some mutually-recursive definitions can be safely ...
In a recent paper, Launchbury, Lewis, and Cook observe that some Haskell applications could benefit ...
Monads have become a popular tool for dealing with computational effects in Haskell for two signific...
In this article, we introduce Applicative functors – an abstract characterisation of an applicative ...
In this paper we explain how recursion operators can be used to structure and reason about program s...
We define a finally tagless, shallow embedding of a typed grammar language. In order to avoid the li...
We propose a novel context-free grammar representation for parsing libraries in a pure programming l...
Monads have been employed in programming languages for modeling various language features, most impo...
In the interest of designing a recursive module extension to ML that is as simple and general as pos...
Monads and applicative functors are staple design patterns to handle effects in pure functional prog...
In a companion paper, we have presented an alternative representation of grammars in Haskell, explic...
Generic programming for mutually recursive families of datatypes is hard. On the other hand, most in...
Abstract. This paper studies inductive definitions involving binders, in which aliasing between free...
A recent paper by Graham Hutton and Diana Fulger (\"Reasoning about Effects: Seeing the Wood through...
We investigate the interplay between a modality for controlling the behaviourof recursive functional...
International audienceIn call-by-value languages, some mutually-recursive definitions can be safely ...
In a recent paper, Launchbury, Lewis, and Cook observe that some Haskell applications could benefit ...
Monads have become a popular tool for dealing with computational effects in Haskell for two signific...
In this article, we introduce Applicative functors – an abstract characterisation of an applicative ...
In this paper we explain how recursion operators can be used to structure and reason about program s...
We define a finally tagless, shallow embedding of a typed grammar language. In order to avoid the li...
We propose a novel context-free grammar representation for parsing libraries in a pure programming l...
Monads have been employed in programming languages for modeling various language features, most impo...
In the interest of designing a recursive module extension to ML that is as simple and general as pos...
Monads and applicative functors are staple design patterns to handle effects in pure functional prog...
In a companion paper, we have presented an alternative representation of grammars in Haskell, explic...
Generic programming for mutually recursive families of datatypes is hard. On the other hand, most in...
Abstract. This paper studies inductive definitions involving binders, in which aliasing between free...
A recent paper by Graham Hutton and Diana Fulger (\"Reasoning about Effects: Seeing the Wood through...
We investigate the interplay between a modality for controlling the behaviourof recursive functional...
International audienceIn call-by-value languages, some mutually-recursive definitions can be safely ...