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...
Abstract. Generic programming enables the programmer to define functions by induction on the structure of types. Defined once, such a generic function can be used to generate a s...
The `Scrap your boilerplate' approach to generic programming allows the programmer to write generic functions that can traverse arbitrary data structures, and yet have type-s...
The Java language lacks the important notions of ownership (an object owns its representation to prevent unwanted aliasing) and immutability (the division into mutable, immutable,...
Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, M...
Angelic nondeterminism can play an important role in program development. It simplifies specifications, for example in deriving programs with a refinement calculus; it is the form...