Abstract
Many functions have to be written over and over again for different datatypes, either because datatypes change during the development
of programs, or because functions with similar functionality are needed on
different datatypes. Examples of such functions are pretty printers, debuggers, equality functions, unifiers, pattern matchers, rewriting functions, etc.
Such functions are called
... read more