I'm a student at CUBoulder working on a PHD in computer science. I'm a member of the Programming Languages and Verification group and advised by Matthew Hammer. We've been working together on incremental computation since meeting at UMD's PLUM lab. We're currently working with Adapton, to bring incremental computation to a wider audience.

Under Submission

  • The Random Access Zipper: Simple, Purely-Functional Sequences [Arxiv,PDF] Accepted to be published in TFP proceedings


  • Incremental Computation with Names [ACM,Arxiv,PDF] Published at OOPSLA'15


  • The Random Access Zipper Presented at PLDI'16 SRC with slides [PDF] (10 min)
  • The Random Access Zipper: Simple, Purely-Functional Sequences Presented at TFP'16 with slides [PDF] (20 min)
  • Correct-by-Construction Interactive Software Presented at OBT'16 with slides [PDF] (20 min)
  • Sparse Adapton [YouTube] Presented at ICFP'15 SRC with slides [PDF] (8 min)


  • Random Access Zipper [PDF] Displayed at PLDI'16 SRC
  • Sparse Adapton [PDF] Displayed at ICFP'15 SRC


  • Tuning Data and Control Structures for Incremental Computation [PDF] Submitted to PLDI'17 for the SRC (original submission [PDF])
  • Random Access Zipper [PDF] Accepted at PLDI'16 for the SRC
  • Correct-by-Construction Interactive Software: From Declarative Specifications to Efficient Implementations [OBT,PDF] Accepted at OBT'16 for presentation
  • Space and Time Optimizations In Adapton [PDF] Accepted at ICFP'15 for the SRC


  • The Random Access Zipper: Simple, Purely-Functional Sequences [PDF] Accepted for presentation at TFP'16
  • Please Repeat Yourself: A Simple and Responsive Text Editor via Incremental Computation and the Random-Access Zipper (Full Paper) [PDF] Awaiting refactoring


Incremental Collections - Data structures designed around Adapton Incremental Sorting - Memory-efficient incremental sort RAZ - Random Access Zipper for functional sequence editing IC_Edit - Incremental text editor programmed in rust Sparse Adapton - Uses fewer memo points for efficiency Nominal Adapton - Exposes names for memo table rewriting Graphmovie - A viewer for dynamic graphs WebGL - some experiments with graphics


Faculty Candidate Evaluation - Student group Spring 2016