AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of boilerplate. This code simply traverses non-interesting parts of the data, and rapidly becomes a maintainability problem. Many generic programming libraries have been proposed to address this issue. Most of them allow the user to specify the behavior just for the interesting bits of the structure, and provide traversal combinators to “scrap the boilerplate”. The expressive power of these libraries usually comes at the cost of efficiency, since runtime checks are used to detect where to apply the type-specific behavior.In previous work we have developed an effective rewrite system for specialization and optimization of generic programs. In th...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Previous implementations of generic rewriting libraries have a number of limitations: they require t...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
Datatype-generic programs are programs that are parametrized by a datatype or type functor: whereas ...
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
Datatype-generic programs are programs that are parametrized by a datatype or type functor: whereas ...
The paper "Scrap your boilerplate" (SYB) introduces a combinator library for generic programming tha...
This paper describes a new approach to generic functional programming, which allows us to define fun...
The ‘Scrap your boilerplate ’ approach to generic programming allows the programmer to write generic...
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functio...
Abstract. The paper “Scrap your boilerplate ” (SYB) introduces a com-binator library for generic pro...
AbstractConstrained genericity is an extension of parametric polymorphism, that allows type paramete...
A generic function is defined by induction on the structure of types. The structure of a data type ...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Previous implementations of generic rewriting libraries have a number of limitations: they require t...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
Datatype-generic programs are programs that are parametrized by a datatype or type functor: whereas ...
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
Datatype-generic programs are programs that are parametrized by a datatype or type functor: whereas ...
The paper "Scrap your boilerplate" (SYB) introduces a combinator library for generic programming tha...
This paper describes a new approach to generic functional programming, which allows us to define fun...
The ‘Scrap your boilerplate ’ approach to generic programming allows the programmer to write generic...
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functio...
Abstract. The paper “Scrap your boilerplate ” (SYB) introduces a com-binator library for generic pro...
AbstractConstrained genericity is an extension of parametric polymorphism, that allows type paramete...
A generic function is defined by induction on the structure of types. The structure of a data type ...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Previous implementations of generic rewriting libraries have a number of limitations: they require t...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...