Polytypic Programming
Publication date
1996
Authors
Jeuring, J.T.
Jansson, P.
Editors
Advisors
Supervisors
DOI
Document Type
Preprint
Metadata
Show full item recordCollections
License
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 polytypic functions. A polytypic function is a function that is defined by induction on the structure of user-defined datatypes.
This paper introduces polytypic functions, and shows how to construct and
reason about polytypic functions. A larger example is studied in detail: poly-typic functions for term rewriting and for determining whether a collection
of rewrite rules is normalising.