This paper explains how the high-level treatment of datatypes in functional languages--using features like constructor functions and pattern matching--can be made to coexist with ...
A wide range of computer programs, including compilers and theorem provers, manipulate data structures that involve names and binding. However, the design of programming idioms wh...
re a popular form of abstract computation. Being more general than monads, they are more broadly applicable, and in parare a good abstraction for signal processing and dataflow co...
Quasiquoting allows programmers to use domain specific syntax to construct program fragments. By providing concrete syntax for complex data types, programs become easier to read, ...
Dynamic software updates can be used to fix bugs or add features to a running program without downtime. Essential for some applications and convenient for others, low-level dynami...
Gareth Stoyle, Michael W. Hicks, Gavin M. Bierman,...