Stratified type inference for generalised algebraic data types. Pages 232–244 of: 33rd acm symposium on principles of programming languages (popl’06 (2006)

by François Pottier, Yann Régis-Gianas