ICFP 2023
Mon 4 - Sat 9 September 2023 Seattle, Washington, United States
Thu 7 Sep 2023 13:30 - 14:00 at A - Grand Ballroom 2 - Session typing functional pearls Chair(s): Andrew K. Hirsch

All formalizations of session types rely on linear types for soundness as
session-typed communication channels must change their type at every
operation. Embedded language implementations of session types follow
suit. They either rely on clever typing constructions to guarantee
linearity statically, or on run-time checks that approximate
linearity.

We present a new language-embedded implementation of session types,
which is inspired by the inversion-of-control design principle. With
our approach, all application programs are intrinsically session-typed and
unable to break linearity by construction. Our design relies on a tiny
encapsulated library, for which linearity remains a proof
obligation that can be discharged once and for all when the library is built.

We demonstrate that our proposed design extends to a wide range of
features of session type systems: branching, recursion, multichannel
and higher-order sessions, as well as context-free sessions. The
multichannel extension provides an embedded implementation of
session types which guarantees deadlock freedom by construction.

The development reported in this paper is fully backed by
type-checked Agda code.

Thu 7 Sep

Displayed time zone: Pacific Time (US & Canada) change

13:30 - 14:30
Session typing functional pearlsICFP Papers and Events at A - Grand Ballroom 2
Chair(s): Andrew K. Hirsch University at Buffalo, SUNY
13:30
30m
Talk
Intrinsically Typed Sessions with Callbacks (Functional Pearl)Functional Pearl
ICFP Papers and Events
Peter Thiemann University of Freiburg, Germany
DOI
14:00
30m
Talk
Dependent Session Protocols in Separation Logic from First Principles (Functional Pearl)Functional PearlRemote
ICFP Papers and Events
Jules Jacobs Radboud University Nijmegen, Jonas Kastberg Hinrichsen Aarhus University, Denmark, Robbert Krebbers Radboud University Nijmegen
DOI