A framework for extended algebraic data types (2005)

by Martin Sulzmann, Jeremy Wazny, Peter Stuckey