PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A new approach to generic functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Science of Computer Programming - Special issue on mathematics of program construction (MPC 2002)
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Scrap your nameplate: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
TypeCase: a design pattern for type-indexed functions
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Open data types and open functions
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
A pattern for almost compositional functions
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
RepLib: a library for derivable type classes
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Modular generic programming with extensible superclasses
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Uniform boilerplate and list processing
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Generics for the working ML'er
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Practical generic programming in OCaml
ML '07 Proceedings of the 2007 workshop on Workshop on ML
A pattern for almost compositional functions
Journal of Functional Programming
Generic programming with fixed points for mutually recursive datatypes
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Alloy: fast generic transformations for Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Language support for processing distributed ad hoc data
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
The next 700 data description languages
Journal of the ACM (JACM)
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
A generic programming toolkit for PADS/ML: first-class upgrades for third-party developers
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Libraries for generic programming in haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Fact-oriented modeling from a programming language designer's perspective
OTM'06 Proceedings of the 2006 international conference on On the Move to Meaningful Internet Systems: AWeSOMe, CAMS, COMINF, IS, KSinBIT, MIOS-CIAO, MONET - Volume Part II
Pricing American bond options using a penalty method
Automatica (Journal of IFAC)
“Scrap your boilerplate” revolutions
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Usage of generic programming on hackage: experience report
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
A generic function is a function that can be instantiated on many data types to obtain data type specific functionality. Examples of generic functions are the functions that can be derived in Haskell, such as show, read, and '=='. The recent years have seen a number of proposals that support the definition of generic functions. Some of the proposals define new languages, some define extensions to existing languages. As a common characteristic none of the proposals can be made to work within Haskell 98: they all require something extra, either a more sophisticated type system or an additional language construct. The purpose of this pearl is to show that one can, in fact, program generically within Haskell 98 obviating to some extent the need for fancy type systems or separate tools. Haskell's type classes are at the heart of this approach: they ensure that generic functions can be defined succinctly and, in particular, that they can be used painlessly.