Research interests include dependently typed programming, datatype-generic programming, program derivation, (applied) type theory, functional programming, and bidirectional programming.
Seeks mathematical and logical structures of computation to understand and develop correct programs, using expressive programming languages that make such structures explicit.
Approaches programming problems primarily from the perspective of intuitionistic type theory, which substantially overlaps with functional programming.
Uses Agda for theoretical modeling and Haskell for practical programming.
Believes type theory is useful for programming due to: (i) an expressive type language for precise specification, abstraction, and modularization; and (ii) the formal and conceptual integration of programs and proofs.
Especially interested in type-theoretic derivation of algorithms (expressed in Agda), demonstrating both aforementioned features.