Mar
14th
Fri
14th
Polytypic Functional Programming and Data Abstraction
Pablo Nogueira Iglesias. Structural polymorphism is a generic programming technique known within the functional programming community under the names of polytypic or datatype-generic programming. In this thesis we show that such a technique conflicts with the principle of data abstraction and propose a solution for reconciliation. More concretely, we show that popular polytypic extensions of the functional programming language Haskell, namely, Generic Haskell and Scrap your Boilerplate have their genericity limited by data abstraction. We propose an extension to the Generic Haskell language where the `structure’ in `structural polymorphism’ is defined around the concept of interface and not the representation of a type. This is a very readable thesis for people interested in generic programming in Haskell. The background chapter on generic programming alone is worth a read. If CiteSeer is down, you can download the pdf directly.