Container Morphisms for Composable Interactive Systems
André Videla
TL;DR
This paper develops a formal, dependently typed framework for composing multi-tier interactive systems by modeling interfaces as containers and translations between them as container morphisms, enabling modular assembly of client, server, and storage layers. It introduces a session model via the Kleene star on containers and a monadic perspective through $MaybeAll$, along with context-, state-, and costate-based execution to run composed API transformers with effects using $Lift$ and $IO$. The approach is mechanised in Idris2 and demonstrated with a To-do application and a filesystem-like example to illustrate correct-by-construction behavior across surfaces and underlying APIs. Overall, the work offers a principled, reusable methodology for building end-to-end systems that span different protocols, while providing formal guarantees about composition and effect management.
Abstract
This paper provides a mathematical framework for client-server communication that results in a modular and type-safe architecture. It is informed and motivated by the software engineering practice of developing server backends with a database layer and a frontend, all of which communicate with a notion of request/response. I make use of dependent types to ensure the request/response relation matches and show how this idea fits in the broader context of containers and their morphisms. Using the category of containers and their monoidal products, I define monads on containers that mimic their functional programming counterparts, and using the Kleene star, I describe stateful protocols in the same system.
