Value-Dependent Session Design in a Dependently Typed Language

by   Jan de Muijnck-Hughes, et al.

Session Types offer a typing discipline that allows protocol specifications to be used during type-checking, ensuring that implementations adhere to a given specification. When looking to realise global session types in a dependently typed language care must be taken that values introduced in the description are used by roles that know about the value. We present Sessions, a Resource Dependent EDSL for describing global session descriptions in the dependently typed language Idris. As we construct session descriptions the values parameterising the EDSLs' type keeps track of roles and messages they have encountered. We can use this knowledge to ensure that message values are only used by those who know the value. Sessions supports protocol descriptions that are computable, composable, higher-order, and value-dependent. We demonstrate Sessions expressiveness by describing the TCP Handshake, a multi-modal server providing echo and basic arithmetic operations, and a Higher-Order protocol that supports an authentication interaction step.



There are no comments yet.


page 1

page 2

page 3

page 4


Minimal Session Types for the π-calculus (Extended Version)

Session types enable the static verification of message-passing programs...

Session Types with Arithmetic Refinements

Session types statically prescribe bidirectional communication protocols...

Label-Dependent Session Types

Session types have emerged as a typing discipline for communication prot...

Higher-order Context-free Session Types in System F

We present an extension of System F with higher-order context-free sessi...

Ferrite: A Judgmental Embedding of Session Types in Rust

This article introduces Ferrite, a shallow embedding of session types in...

The Different Shades of Infinite Session Types

Many type systems include infinite types. In session type systems, which...

A Role for Dependent Types in Haskell (Extended version)

Modern Haskell supports zero-cost coercions, a mechanism where types tha...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.