The development of design patterns in object-oriented programming aims at capturing good software design in a re-usable generic form. However, design patterns are not expressible ...
Ondrej Rypacek, Roland Carl Backhouse, Henrik Nils...
Datatype-generic programming (DGP) is the next step beyond abstracting over types using parametric polymorphism, which is often called "genericity" in object-oriented la...
Generic libraries, such as the C++ Standard Template Library (STL), provide flexible, high-performance algorithms and data types, along with functional specifications and performa...
Design patterns are reusable abstractions in object-oriented software. However, using current mainstream programming languages, these elements can only be expressed extra-linguist...
Generic Haskell is a language extension of Haskell for polytypic programming. Constrained types are parametric algebraic types with at least one argument constrained by type-class...
"Generics for the Masses" (GM) and "Scrap your Boilerplate" (SYB) are generic programming approaches based on some ingenious applications of Haskell type class...
Type-directed programming is an important idiom for software design. In type-directed programming the behavior of programs is guided by the type structure of data. It makes it pos...
Software libraries rely increasingly on iterators to provide generic traversal of data structures. These iterators can be represented either as objects that maintain state or as p...