Department of Computer Science, Yale University, New Haven, Connecticut, 06520 USA. andrew.smith@yale.edu|Department of Computer Science, Yale University, New Haven, Connecticut, 06520 USA. andrew.smith@yale.edu|Department of Computer Science, Yale University, New Haven, Connecticut, 06520 USA. andrew.smith@yale.edu|Department of Computer Science, Yale University, New Haven, Connecticut, 06520 USA. andrew.smith@yale.edu|Department of Computer Science, Yale University, New Haven, Connecticut, 06520 USA. andrew.smith@yale.edu