Improving the structure of code can help developers work with a software system more efficiently and more consistently. To aid developers in re-structuring the implementation of c...
A type-indexed function is a function that is defined for each member of some family of types. Haskell’s type class mechanism provides collections of open type-indexed function...
Some Lisp programs such as Emacs, but also the Linux kernel (when fully modularised) are mostly dynamic; i.e., apart from a small static core, the significant functionality is dy...
Today’s module systems do not effectively support information hiding in the presence of shared mutable objects, causing serious problems in the development and evolution of larg...
Concepts are an essential language feature for generic programming in the large. Concepts allow for succinct expression of constraints on type parameters of generic algorithms, en...