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. My research centers on type systems for functional programming languages; in particular:
I work with Phil Wadler and Sam Lindley on the ABCD project, which studies the role of session types in safe concurrent and distributed programming. I have contributed to the design and implementation of session types for the Links programming language. I received my Ph.D. from 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]
J. Garrett Morris. "The Best of Both Worlds: Linear Functional Programming Without Compromise". To appear at ICFP 2016, Nara, Japan. [PDF]
Sam Lindley and J. Garrett Morris. "Talking Bananas: Structural Recursion for Session Types". To appear at ICFP 2016, Nara, Japan. [PDF]
Sam Lindley and J. Garrett Morris. "Embedding Session Types in Haskell". To appear at Haskell 2016, Nara, Japan.
Robert Atkey, Sam Lindley, and J. Garrett Morris. "Conflation Confers Concurrency". In A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday. LNCS 9600. [Springer] [PDF]
J. Garrett Morris and Mark P. Jones. "Instance Chains: Type Class Programming Without Overlapping Instances." In Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming (ICFP '10), Baltimore, Maryland. 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 definitive version.