Published August 21, 2021 | Version 1
Conference paper Open

Deadlock-free session types in linear Haskell

  • 1. University of Edinburgh
  • 2. University of Glasgow

Description

Priority Sesh is a library for session-typed communication in Linear Haskell which offers strong compile-time correctness guarantees. Priority Sesh offers two deadlock-free APIs for session-typed communication. The first guarantees deadlock freedom by restricting the process structure to trees and forests. It is simple and composeable, but rules out cyclic structures. The second guarantees deadlock freedom via priorities, which allows the programmer to safely use cyclic structures as well.

Our library relies on Linear Haskell to guarantee linearity, which leads to easy-to-write session types and more idiomatic code, and lets us avoid the complex encodings of linearity in the Haskell type system that made previous libraries difficult to use.

Files

KD-Haskell21.pdf

Files (618.6 kB)

Name Size Download all
md5:922d21be45bcff52cb0b3f65ef644c15
618.6 kB Preview Download

Additional details

Funding

BEHAPI – Behavioural Application Program Interfaces 778233
European Commission