We will explain interaction laws, a mathematical abstraction for describing protocols of the communication that takes place between effectful programs/computations and environments/machines when the former are run against the latter.
Katsumata, Rivas, Uustalu introduced interaction laws and worked out their basic theory in a paper that appeared at LICS 2020. The same concept had appeared earlier in blog posts by Kmett and Freeman under the names of zappings and pairings; Xavier wrote a 2017 UFMG BSc thesis on the topic.
In particular, we will explain how interaction laws relate to handlers.
We will use Haskell to demonstrate our material.
After the tutorial, the participants will be able to understand comonads (as notions of environment), interaction laws (as protocols of communication between computations and environments), handlers (as functions for “crunching” a computation into a single value), cohandlers (as functions for “blowing up” a single state into an environment) and devise such structures for their own applications.
Materials at the link below (“link to preprint”).