Modular typechecking for hierarchically extensible datatypes and functions. - Todd D. Millstein; Colin Bleckner; Craig Chambers (ACM Trans. Program. Lang. Syst., 2004)