TY - GEN
T1 - Comparing libraries for generic programming in haskell
AU - Rodriguez, Alexey
AU - Gerdes, Alex
AU - Jeuring, Johan
AU - Kiselyov, Oleg
AU - Jansson, Patrik
AU - Oliveira, Bruno C.D.S.
PY - 2008
Y1 - 2008
N2 - Datatype-generic programming is defining functions that depend on the structure, or "shape", of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are more than 10 proposals for generic programming libraries or language extensions for Haskell. To compare and characterise the many generic programming libraries in a typed functional language, we introduce a set of criteria and develop a generic programming benchmark: a set of characteristic examples testing various facets of datatype-generic programming. We have implemented the benchmark for nine existing Haskell generic programming libraries and present the evaluation of the libraries. The comparison is useful for reaching a common standard for generic programming, but also for a programmer who has to choose a particular approach for datatype-generic programming.
AB - Datatype-generic programming is defining functions that depend on the structure, or "shape", of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are more than 10 proposals for generic programming libraries or language extensions for Haskell. To compare and characterise the many generic programming libraries in a typed functional language, we introduce a set of criteria and develop a generic programming benchmark: a set of characteristic examples testing various facets of datatype-generic programming. We have implemented the benchmark for nine existing Haskell generic programming libraries and present the evaluation of the libraries. The comparison is useful for reaching a common standard for generic programming, but also for a programmer who has to choose a particular approach for datatype-generic programming.
KW - Datatype-generic programming
KW - Libraries comparison
UR - http://www.scopus.com/inward/record.url?scp=63149132040&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=63149132040&partnerID=8YFLogxK
U2 - 10.1145/1411286.1411301
DO - 10.1145/1411286.1411301
M3 - Conference contribution
AN - SCOPUS:63149132040
SN - 9781605580647
T3 - Haskell'08 - Proceedings of the ACM SIGPLAN 2008 Haskell Symposium
SP - 111
EP - 122
BT - Haskell'08 - Proceedings of the ACM SIGPLAN 2008 Haskell Symposium
T2 - 1st ACM SIGPLAN Haskell Symposium, Haskell'08
Y2 - 25 September 2008 through 25 September 2008
ER -