[![Haskell CI](https://img.shields.io/github/actions/workflow/status/input-output-hk/typed-protocols/haskell.yml?branch=main&label=Build&style=for-the-badge)](https://github.com/input-output-hk/typed-protocols/actions/workflows/haskell.yml)
[![handbook](https://img.shields.io/badge/policy-Cardano%20Engineering%20Handbook-informational?style=for-the-badge)](https://input-output-hk.github.io/cardano-engineering-handbook)


typed-protocols
===============


A robust session type framework which supports [protocol pipelining][protocol-pipelining].

Haddocks are published [here][haddocks].


Public content
--------------

[Duncan Coutts][dcoutts] Haskell eXchange 2019 [talk][haskell-eXchange].

Monadic party workshop by Marcin Szamotulski ([coot]):
* [part 1][monadic-party-part-1]
* [part 2][monadic-party-part-2]
* [part 2][monadic-party-part-3]

Talk at [Haskell Love 2021][haskell-love] by Marcin Szamotulski ([coot]), [slides][haskell-love-slides].

An [Agda][typed-protocols-agda] implementation by Marcin Szamotulski ([coot]).


[protocol-pipelining]: https://www.wikiwand.com/en/Protocol_pipelining
[haskell-eXchange]: https://www.youtube.com/watch?v=kkynmgwa7gE
[monadic-party-part-1]: https://www.youtube.com/watch?v=j8gza2L61nM
[monadic-party-part-2]: https://www.youtube.com/watch?v=oV6KSl1srL8
[monadic-party-part-3]: https://www.youtube.com/watch?v=nOIQCRPwmPA
[haskell-love-slides]: https://coot.me/posts/typed-protocols-at-haskell-love.html
[haskell-love]: https://www.youtube.com/watch?v=EbK6VAqYh3g
[typed-protocols-agda]: https://coot.me/agda/posts.agda.typed-protocols.html
[coot]: https://github.com/coot
[dcoutts]: https://github.com/dcoutts
[haddocks]: https://input-output-hk.github.io/typed-protocols