Vpnkit (Experience Report) [vpnkit-er]
The experience reports for ICFP are defined as:
The purpose of an Experience Report is to describe the experience of using functional programming in practice, whether in industrial application, tool development, programming education, or any other area.
Vpnkit is a tool used in the Docker 4 Mac stack to translate networking operations between the host (macOS) and the virtual machine (Linux). It is almost entirely written in OCaml making heavy use of the various Mirage libraries for building portable networking applications.
An interesting direction for this paper may be instead to focus on moving the OCaml ecosystem from one without algebraic effects, to a community with algebraic effects. Where this is most acutely felt is how libraries manage asynchronous IO. This almost feels like an ICFP paper in and of itself. A tentative structure could be:
Introduction to OCaml 5 work and effects.
Experiments pre OCaml 5, Eio.
Porting large applications (Irmin and Vpnkit) to Eio.
Current situation: algebraic effect-based zoo.
Future: Picos, Eio, etc.
This feels like a strong and interesting paper. Two key strengths are: a very measurable section at (3), very practical throughout etc.
It feels reminiscent of the Scala capability keynote from last year, but would be less technical?