Common record systems only provide access to individual record fields. However, it is often useful to have generic record combinators, that is, functions that work with complete ...
Datatype-generic programming involves parametrization by the shape of data, in the form of type constructors such as `list of'. Most approaches to datatype-generic programmin...
We describe a design pattern for writing programs that traverse data structures built from rich mutually-recursive data types. Such programs often have a great deal of “boilerpl...
Type-directed programming is an important idiom for software design. In type-directed programming the behavior of programs is guided by the type structure of data. It makes it pos...
With the emergence of commodity multicore architectures, exploiting tightly-coupled parallelism has become increasingly important. Functional programming languages, such as Haskel...
Abdallah Al Zain, Kevin Hammond, Jost Berthold, Ph...