"Generalized algebraic data types and object-oriented programming."

Andrew Kennedy, Claudio V. Russo (2005)
a service of Schloss Dagstuhl - Leibniz Center for Informatics