Monads, Shapely Functors and Traversals
Eugenio Moggi, G. Bellè, C. Barry Jay · Electronic Notes in Theoretical Computer Science · 1999
This paper demonstrates the potential for combining the polytypic and monadic programming styles, by introducing a new kind of combinator, called a traversal. The natural setting for defining traversals is the class of shapely data types. This result reinforces the view that shapely data types form a natural domain for polytypism: they include most of the data types of interest, while to exceed them would sacrifice a very smooth interaction between polytypic and monadic programming.