I'm interested in all aspects of relational programming, including the theoretical foundations of the relational paradigm, the implementation of relational languages, and the use of relational languages as a more expressive framework in which to construct functional programs. Categorical methods . Category theory is a mathematical approach to the study of algebraic structure that has become an important tool in theoretical computing science, particularly for semantics-based research. I'm interested in the use of categorical methods both to gain a deeper understanding of existing programming language concepts, and to guide the development of new programming language concepts. Generic programming .
Many programs work in essentially the same way, but operate on different datatypes.
The unification of such programs into single programs that are parametric in the underlying datatype has lead to the development of a new research area, called generic programming. At the moment, my main interest in this area is in the study of generic operators and proof methods for recursive programming. Recursion operators . Many recursive programs use a common pattern of recursion. Abstracting these patterns into general schemes leads to a more structured approach to recursive programming and proof, and has proved important in the initial development of generic programming.