Pattern matching with abstract data types. - Burton, F. Warren; Cameron, Robert D (Journal of Functional Programming, 1993)