Embedding session types in Haskell

Sam Lindley, J. Garrett Morris
2016 Proceedings of the 9th International Symposium on Haskell - Haskell 2016  
We present a novel embedding of session-typed concurrency in Haskell. We extend an existing HOAS embedding of linear λcalculus with a set of core session-typed primitives, using indexed type families to express the constraints of the session typing discipline. We give two interpretations of our embedding, one in terms of GHC's built-in concurrency and another in terms of purely functional continuations. Our safety guarantees, including deadlock freedom, are assured statically and introduce no additional runtime overhead.
doi:10.1145/2976002.2976018 dblp:conf/haskell/LindleyM16 fatcat:vnfdahrezvgchdido4f5q6gj3q