Previous implementations of generic rewriting libraries have a number of limitations: they require the user to either adapt the datatype on which rewriting is applied, or the rewriting rules are specified as functions, which makes it hard or impossible to docu-ment, test, and analyse them. We describe a library that demon-strates how to overcome these limitations by defining rules in terms of datatypes, and show how to use a type-indexed datatype to automatically extend a datatype for syntax trees with a case for metavariables. We then show how rewrite rules can be imple-mented without any knowledge of how the datatype is extended with metavariables. We use Haskell, extended with associated type synonyms, to implement both type-indexed data...
A polytypic function is a function that can be instantiated on many data types to obtain data type s...
This paper describes a new approach to generic functional programming, which allows us to define fun...
Datatype-generic programming is defining functions that depend on the structure, or "shape", of data...
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed...
Software development often consists of designing datatypes around which functionality is added. Som...
Software development often consists of designing datatypes around which functionality is added. Som...
AbstractA polytypic function is a function that can be instantiated on many data types to obtain dat...
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 ...
A generic function is a function that is defined on the structure of data types: with a single defin...
This thesis is an exploration -- an exploration of a language extension of the functional programmi...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
Abstract. The more expressive a type system, the more type information has to be provided in a progr...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
Datatype-generic programming is defining functions that depend on the structure, or "shape", of data...
A polytypic function is a function that can be instantiated on many data types to obtain data type s...
This paper describes a new approach to generic functional programming, which allows us to define fun...
Datatype-generic programming is defining functions that depend on the structure, or "shape", of data...
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed...
Software development often consists of designing datatypes around which functionality is added. Som...
Software development often consists of designing datatypes around which functionality is added. Som...
AbstractA polytypic function is a function that can be instantiated on many data types to obtain dat...
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 ...
A generic function is a function that is defined on the structure of data types: with a single defin...
This thesis is an exploration -- an exploration of a language extension of the functional programmi...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
Abstract. The more expressive a type system, the more type information has to be provided in a progr...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
Datatype-generic programming is defining functions that depend on the structure, or "shape", of data...
A polytypic function is a function that can be instantiated on many data types to obtain data type s...
This paper describes a new approach to generic functional programming, which allows us to define fun...
Datatype-generic programming is defining functions that depend on the structure, or "shape", of data...