Type-Changing Program Transformations with Pattern Matching
Summary
When writing code, occasionally the need comes up to change the data representation or underlying data structures. For example because a dierent structure is more efficient, or because another library is better maintained. Manually replacing instances of the old datatype to the new datatype is tedious and error-prone, so this is a good candidate for automation.
In this thesis, we will investigate a type system-based transformation system for rewriting expressions to make use of dierent datatypes. Specifically, we deal with the issues presented by pattern matching and custom datatype definitions. In this, we build on previous work done by Leather et al.