Dynamic Construction of Generic Functions

This paper presents a library for the run-time construction and specialisation of generic or polytypic functions. This library utilises the type information that is available in dynamics to implement generic functions on their values. The library closely follows the static generic framework, both in its use and in its implementation. It can dynamically construct generic operations ranging from equality, map and parsers to pretty printers and generic graphical editors. A special feature of the library is that it can also be used to derive meaningful specialisations of generic functions that operate on the type representation of the dynamic.

[1]  Sjaak Smetsers,et al.  Optimizing Generic Functions , 2004, MPC.

[2]  Werner Kluge,et al.  Implementation of Functional Languages , 1996, Lecture Notes in Computer Science.

[3]  Martín Abadi,et al.  Dynamic typing in polymorphic languages , 1995, Journal of Functional Programming.

[4]  Marinus J. Plasmeijer,et al.  A Generic Programming Extension for Clean , 2001, IFL.

[5]  Ralf Hinze,et al.  A new approach to generic functional programming , 2000, POPL '00.

[6]  James Cheney,et al.  A lightweight implementation of generics and dynamics , 2002, Haskell '02.

[7]  Simon L. Peyton Jones,et al.  Scrap more boilerplate: reflection, zips, and generalised casts , 2004, ICFP '04.

[8]  Marco Pil Dynamic Types and Type Dependent Functions , 1998, IFL.

[9]  Marinus J. Plasmeijer,et al.  Gast: Generic Automated Software Testing , 2002, IFL.

[10]  Marinus J. Plasmeijer,et al.  Lazy Dynamic Input/Output in the Lazy Functional Language Clean , 2002, IFL.

[11]  Marko C. J. D. van Eekelen,et al.  Generic Graphical User Interfaces , 2003, IFL.

[12]  John Hughes,et al.  Report on the Programming Language Haskell 98 , 1999 .

[13]  Marinus J. Plasmeijer,et al.  When Generic Functions Use Dynamic Values , 2002, IFL.

[14]  WadlerPhilip,et al.  Report on the programming language Haskell , 1992 .

[15]  Simon L. Peyton Jones,et al.  Derivable Type Classes , 2001, Haskell.

[16]  Marinus J. Plasmeijer,et al.  Towards a Strongly Typed Functional Operating System , 2002, IFL.

[17]  A. R. Alim Improved Fusion for Optimizing Generics , 2005 .

[18]  Rinus Plasmeijer,et al.  Concurrent Clean Language Report - version 1.3 , 1998 .

[19]  Simon L. Peyton Jones,et al.  Scrap your boilerplate: a practical design pattern for generic programming , 2003, TLDI '03.