Generic Views For Generic Types

Stc
Date: 2008-01-24

Time: 11:45

Room: BBL room 471

Speaker: Thomas van Noort

Title: Generic Views for Generic Types (Thesis Defense) (slides/thesis)

Abstract

Generic programming allows us to capture uniform behaviour for a family of types in a single definition. In this thesis, we focus on Generic Haskell, a preprocessor to Haskell which enables us to define generic functions and generic types. Such definitions are applicable in almost any context since their result depends on a structural representation of types. Several representations exist, which together are called generic views. These generic views include a standard view using sums of products, a balanced view to improve efficiency, and a fixed-point view that makes the recursive occurrences in a type explicit. In contrast to generic functions, Generic Haskell allows us define generic types only using the standard view.

This thesis studies to what extent generic views, other than the standard view, are useful on the type level. We illustrate the use of generic views for generic types by giving several examples, including a finite map library with improved efficiency, a generic rewriting library with automated extension of the object language with meta variables, and the zipper for efficient traversal of data structures, with improved usability.