In the spirit of release early, release often I’m sharing this project I recently started called dhall-session-types. If you’re new to session types you can think of them as a formal model for structured communication between systems. The README links to a useful overview paper I’ve been referring to as I work on it.
It might be a while before I add much more. Soon I’d like to shift my attention to what I can build on top of this encoding of simple session types. For example, I’d like to try generate clients and servers that use a variety of protocols, and demonstrate that these types can be useful for protocol-agnostic design and potentially evolution. If that goes well I may come back to this an look for opportunities to encode more extensions.