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

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.

Diagnosing maximum-likelihood program error locations from constraint system failures.

Current Projects

[Show courses taught]