Many functions have to be written over and over again for different datatypes, either because datatypes change during the development\ud of programs, or because functions with similar functionality are needed on\ud different datatypes. Examples of such functions are pretty printers, debuggers, equality functions, unifiers, pattern matchers, rewriting functions, etc.\ud Such functions are called polytypic functions. A polytypic function is a function that is defined by induction on the structure of user-defined datatypes.\ud This paper introduces polytypic functions, and shows how to construct and\ud reason about polytypic functions. A larger example is studied in detail: poly-typic functions for term rewriting and for determining whether a collection\ud of rewrite rules is normalising
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.