Research interests

It is too hard to build trustworthy software systems using conventional systems APIs. I work on higher-level, language-based abstractions for programming that better address important cross-cutting concerns: security, extensibility, persistence, distribution.

Selected recent publications

Effective localization of type errors in the rich type system of Haskell.

An expressive, lightweight genericity mechanism with better code reuse and stronger static checking

LALR parsers can illustrate parsing conflicts with counterexamples

SecVerilog: a security-typed hardware design language for building hardware without leaks or timing channels

Distributed transactions can be sped up by giving clients time-limited invariants on state and computation.

Current Projects

[Show courses taught]