We introduce a handful of modules for manipulating Template Haskell datastructures, building up to modules that allow simplication and recursion unrolling of Haskell code. To illustrate their use, and to demonstrate the performance improvements that motivate this work, we also discuss an example application Fraskell [5], showing how we can get more than an order of magnitude performance increase with minimal changes to the source
The problem of supporting the modular extensibility of both data and functions in one programming la...
Haskell is a functional programming language with nominally non-strict semantics, implying that eval...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
We propose a new extension to the purely functional programming language Haskell that supports compi...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
AbstractMetaprogramming consists of writing programs that generate or manipulate other programs. Tem...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
We extend Haskell with regular expression patterns. Regular expression patterns provide means for ma...
There has been growing interest in using the Z notation to describe design patterns and to encourage...
Abstract The Haskell String type is notoriously inefficient. We introduce a new data type, ByteStrin...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
Generic Programming deals with the construction of programs that can be applied to many different da...
Template metaprogramming is an emerging new direction of gen-erative programming: with the clever de...
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables...
Abstract. Programs in languages such as Haskell are often datatype-centric and make extensive use of...
The problem of supporting the modular extensibility of both data and functions in one programming la...
Haskell is a functional programming language with nominally non-strict semantics, implying that eval...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
We propose a new extension to the purely functional programming language Haskell that supports compi...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
AbstractMetaprogramming consists of writing programs that generate or manipulate other programs. Tem...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
We extend Haskell with regular expression patterns. Regular expression patterns provide means for ma...
There has been growing interest in using the Z notation to describe design patterns and to encourage...
Abstract The Haskell String type is notoriously inefficient. We introduce a new data type, ByteStrin...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
Generic Programming deals with the construction of programs that can be applied to many different da...
Template metaprogramming is an emerging new direction of gen-erative programming: with the clever de...
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables...
Abstract. Programs in languages such as Haskell are often datatype-centric and make extensive use of...
The problem of supporting the modular extensibility of both data and functions in one programming la...
Haskell is a functional programming language with nominally non-strict semantics, implying that eval...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...