I am a research associate in the Laboratory for Foundations of Computer Science, one institute of the School of Informatics at the University of Edinburgh. I work on implementation and interpretation of session types for the ABCD project, along with Phil Wadler and Sam Lindley.
Most recently, I was a Ph.D. student in the computer science department at Portland State University, advised by Mark P. Jones. As part of the High Assurance Systems Programming project, I contributed to the design of the Habit programming language, particularly its class system, and to the development of the Habit compiler, particularly its typechecking and desugaring components.
Instances Chains and Type Classes: A Relational Approach. [PDF]
"A Simple Semantics of Haskell Overloading", J. Garrett Morris. To appear at Haskell '14. [PDF]
"Instance Chains: Type Class Programming Without Overlapping Instances," J. Garrett Morris and Mark P. Jones. In Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming (ICFP '10), Baltimore, Maryland, September 27-29, 2010. [ACM DL] [PDF]
"Experience Report: Using Hackage to Inform Language Design," J. Garrett Morris. In Proceedings of the 3rd ACM Symposium on Haskell (Haskell '10), Baltimore, Maryland, September 30, 2010. [ACM DL] [PDF]
Some of these papers are copyright ACM. These are the author's versions of the work. They are posted here by permission of ACM for your personal use. Not for redistribution. Please see each paper for the location of the defininitive version.