The constructor calculus is a variant of the lambda-calculus that supports generic programming of functions for mapping, folding, equality, addition, etc. based on fresh approach to data types, their constructors, and pattern-matching. (more)
The paper gives a nice intro to generic programming. I haven't had the time to reach any conclusions about the work prsented.