Canonical Term Functors and parameterization-by-use for the specification of abstract data types - Voss, Alfred (1983)