j garrett morris

about me

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 study:

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. 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]


J. Garrett Morris. "Variations on Variants". To appear at the 2015 Haskell Symposium, Vancouver, BC. [PDF] [Sample code]

Sam Lindley and J. Garrett Morris. "A Semantics for Propositions as Sessions". ESOP 2015. [Springer] [PDF]

J. Garrett Morris. "A Simple Semantics of Haskell Overloading". In Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell, Gothenburg, Sweden. [ACM DL] [PDF]

Sam Lindley and J. Garrett Morris. "Sessions as Propositions". In PLACES 2014. [arXiv] [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]

J. Garrett Morris. "Experience Report: Using Hackage to Inform Language Design." In Proceedings of the 3rd ACM Symposium on Haskell (Haskell '10), Baltimore, Maryland. [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.