Deadlock-Free Session Types in Linear Haskell

03/26/2021
by   Wen Kokke, et al.
0

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 highly idiomatic code, and lets us avoid the complex encodings of linearity in the Haskell type system that made previous libraries difficult to use.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/02/2023

Intrinsically Typed Sessions With Callbacks

All formalizations of session types rely on linear types for soundness a...
research
09/12/2019

Rusty Variation: Deadlock-free Sessions with Failure in Rust

Rusty Variation (RV) is a library for session-typed communication in Rus...
research
03/26/2021

Prioritise the Best Variation

Binary session types guarantee communication safety and session fidelity...
research
10/01/2021

Deadlock Freedom for Asynchronous and Cyclic Process Networks

This paper considers the challenging problem of establishing deadlock fr...
research
11/25/2021

Deadlock Freedom for Asynchronous and Cyclic Process Networks (Extended Version)

This paper considers the challenging problem of establishing deadlock fr...
research
08/16/2018

Session Guarantees with Raft and Hybrid Logical Clocks

Eventual consistency is a popular consistency model for geo-replicated d...
research
07/11/2023

Subtyping Context-Free Session Types

Context-free session types describe structured patterns of communication...

Please sign up or login with your details

Forgot password? Click here to reset