Job opening at Utrecht: Generic Haskell

                  Postdoc Software Technology

                 Department of Computer Science
                      Utrecht University
                   Utrecht, The Netherlands

You will work on the "Generic Haskell: a language for generic 
programming" project. See 


The abstract of the project is given below.

Together with a team consisting of several senior researchers and Ph.D. 
students, you will develop:

- a generic programming language extension of Haskell;
- practical examples of generic programming such as a database connection;
- programming methods for the language extension. 


PhD in Computer Science. Knowledge of some of the following topics:
functional programming, compiler technology, type theory, and/or generic 

This is a position for 3 years.


Send your application on or before October 6, 2000 either by email 
or on paper to: Johan Jeuring, Department of Computer Science, 
Utrecht University, P.O.Box 80.089, NL-3508 TB Utrecht, The Netherlands, 
email: johanj@cs.uu.nl.


For information, please contact Johan Jeuring (johanj@cs.uu.nl, 
http://www.cs.uu.nl/~johanj/) or Doaitse Swierstra (doaitse@cs.uu.nl,


        Generic Haskell: a language for generic programming

Software development often consists of designing a datatype, to which
functionality is added. Some functionality is datatype specific, other
functionality is defined on almost all datatypes, and only depends on
the type structure of the datatype. Examples of generic (or polytypic) 
functionality defined on almost all datatypes are storing a value in a 
database, editing a value, comparing two values for equality, 
pretty-printing a value, etc. A function that works on many datatypes 
is called a polytypic function.

Since datatypes often change and new datatypes are introduced, we have
developed Polyp, an extension of the functional programming language 
Haskell that supports defining polytypic functions. However, Polyp allows 
the definition of polytypic functions on a limited set of datatypes, 
which hinders the wide application of polytypic programming.

Recent work by Hinze shows how to overcome many of the current limitations 
of Polyp by extending Haskell with a construct for defining type-indexed 
functions with kind-indexed types. The goal of this project is to develop:

- a language extension of Haskell based on these ideas;
- practical examples such as a database connection;
- programming methods for the language extension. 

Thus we will obtain a truly generic, type-safe, and practically applicable 
extension of Haskell!