Generic Programming With Fixed Points For Parametrized Datatypes
Room: BBL room 471
Speaker: Erik Hesselink
Title: Generic programming with fixed points for parametrized datatypes
Generic programming allow a programmer to write a function that depends on the structure on a datatype. This function can then be used without extra work on a large range of datatypes. Examples of functions that can be expressed this way are equality, serializing and parsing of data, and mapping and folding over collections. The fixed point view is a way to describe the structure of datatypes that allows generic programming. One problem with this view is that it lacks a representation of collection elements. In this talk, I will extend the fixed point view on data with a representation for an arbitrary number of type parameters. This allows generic map, zip and crush functions to be written. I will also briefly show that the used technique, indexed containers, has similarities with the techniques used in the 'multirec' library for generic programming with families of mutually recursive datatypes.