In languages that support polymorphic variants, a single variant value can be passed to many contexts that accept different sets of constructors. Polymorphic variants are potenti...
Abstract. Datatypes which differ inessentially in their names and structure are said to be isomorphic; for example, a ternary product is isomorphic to a nested pair of binary prod...
Datatype-generic programming (DGP) is the next step beyond abstracting over types using parametric polymorphism, which is often called "genericity" in object-oriented la...
We present by example a new application domain for functional languages: emulators for embedded real-time protocols. As a casestudy, we implement a simple emulator for the Biphase...
This paper presents the design of G, a new language specifically created for generic programming. We review and identify important language features of C++ and Haskell in light o...