A New Paradigm for Component-Based Development

The May issue of Journal of Software contains a paper that applies dependent type theory to component-based programming.
The paper is potentially interesting to people interested in extending Haskell's type system in various directions.

Hancock and Setzer describe how Haskell’s monolithic IO monad can be decomposed into worlds when working in a dependently typed language, like Martin-Löf’s type theory.

This paper introduces the notion of world map and shows that worlds and world maps form a category with arbitrary products. The construction of the category is carried out entirely in type theory and directly implementable in dependently typed programming languages.

If we let the notion of world replace the standard notion of interface, and the notion of world map replace the standard notion of component, we get a rigorous paradigm for component-based development. This new paradigm is investigated and several applications are given. For example, the problem of session state is given a very clean solution.

The paper has open access and is available from here.

PDF direct link.