mplementations for Typed Session Abstractions Ricardo Corin1,2,3 Pierre-Malo Deni´elou1,2 C´edric Fournet1,2 Karthikeyan Bhargavan1,2 James Leifer1 1 MSR-INRIA Joint Centre 2 Microsoft Research 3 University of Twente Distributed applications can be structured as parties that exchange messages according to some pre-arranged communication patterns. These sessions (or contracts, or protocols) simplify distributed programming: when coding a role for a given session, each party just has to follow the intended message flow, under the assumption that the other parties are also compliant. In an adversarial setting, remote parties may not be trusted to play their role. Hence, defensive implementations also have to monitor one another, in order to detect any deviation from the assigned roles of a session. This task low-level coding below session abstractions, thus giving up most of their benefits. We explore language-based support for sessions. We extend the ML language with session types t...