{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,5]],"date-time":"2024-09-05T00:30:09Z","timestamp":1725496209261},"publisher-location":"Berlin, Heidelberg","reference-count":100,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540767855"},{"type":"electronic","value":"9783540767862"}],"license":[{"start":{"date-parts":[[2007,1,1]],"date-time":"2007-01-01T00:00:00Z","timestamp":1167609600000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2007]]},"DOI":"10.1007\/978-3-540-76786-2_2","type":"book-chapter","created":{"date-parts":[[2007,11,29]],"date-time":"2007-11-29T05:37:47Z","timestamp":1196314667000},"page":"72-149","source":"Crossref","is-referenced-by-count":11,"title":["Comparing Approaches to Generic Programming in Haskell"],"prefix":"10.1007","author":[{"given":"Ralf","family":"Hinze","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Johan","family":"Jeuring","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andres","family":"L\u00f6h","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"2_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"152","DOI":"10.1007\/978-3-540-27861-0_10","volume-title":"Implementation of Functional Languages","author":"P. Achten","year":"2004","unstructured":"Achten, P., van Eekelen, M., Plasmeijer, R.: Generic Graphical User Interfaces. In: Trinder, P., Michaelson, G.J., Pe\u00f1a, R. (eds.) IFL 2003. LNCS, vol.\u00a03145, pp. 152\u2013167. Springer, Heidelberg (2004)"},{"unstructured":"Alimarine, A.: Generic Functional Programming - Conceptual Design, Implementation and Applications. PhD thesis, University of Nijmegen, The Netherlands (2005)","key":"2_CR2"},{"key":"2_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"168","DOI":"10.1007\/3-540-46028-4_11","volume-title":"Implementation of Functional Languages","author":"A. Alimarine","year":"2002","unstructured":"Alimarine, A., Plasmijer, R.: A generic programming extension for Clean. In: Arts, T., Mohnen, M. (eds.) IFL 2002. LNCS, vol.\u00a02312, pp. 168\u2013186. Springer, Heidelberg (2002)"},{"key":"2_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"16","DOI":"10.1007\/978-3-540-27764-4_3","volume-title":"Mathematics of Program Construction","author":"A. Alimarine","year":"2004","unstructured":"Alimarine, A., Smetsers, S.: Optimizing generic functions. In: Kozen, D. (ed.) MPC 2004. LNCS, vol.\u00a03125, pp. 16\u201331. Springer, Heidelberg (2004)"},{"key":"2_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"203","DOI":"10.1007\/978-3-540-30557-6_16","volume-title":"Practical Aspects of Declarative Languages","author":"A. Alimarine","year":"2005","unstructured":"Alimarine, A., Smetsers, S.: Improved fusion for optimizing generics. In: Hermenegildo, M.V., Cabeza, D. (eds.) Practical Aspects of Declarative Languages. LNCS, vol.\u00a03350, pp. 203\u2013218. Springer, Heidelberg (2005)"},{"doi-asserted-by":"crossref","unstructured":"Altenkirch, T., McBride, C.: Generic programming within dependently typed programming. In: Gibbons and Jeuring [27] , pp. 1\u201320","key":"2_CR6","DOI":"10.1007\/978-0-387-35672-3_1"},{"unstructured":"Atanassow, F., Clarke, D., Jeuring, J.: Scripting XML with Generic Haskell. In: Proceedings of the 7th Brazilian Symposium on Programming Languages, SBLP 2003, An extended version of this paper appears as ICS, Utrecht University, technical report UU-CS-2003-023 (2003)","key":"2_CR7"},{"issue":"2","key":"2_CR8","doi-asserted-by":"publisher","first-page":"72","DOI":"10.1016\/j.scico.2006.01.005","volume":"65","author":"F. Atanassow","year":"2007","unstructured":"Atanassow, F., Jeuring, J.: Customizing an XML-Haskell data binding with type isomorphism inference in Generic Haskell. Science of Computer Programming\u00a065(2), 72\u2013107 (2007)","journal-title":"Science of Computer Programming"},{"key":"2_CR9","first-page":"239","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 1998","author":"L. Augustsson","year":"1998","unstructured":"Augustsson, L.: Cayenne \u2013 a language with dependent types. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 1998, pp. 239\u2013250. ACM Press, New York (1998)"},{"doi-asserted-by":"crossref","unstructured":"Backhouse, R., Gibbons, J.: The EPSRC project on Datatype-Generic Programming (2003-2006), http:\/\/web.comlab.ox.ac.uk \/oucl\/research\/pdt\/ap\/dgp\/","key":"2_CR10","DOI":"10.1007\/978-3-540-76786-2"},{"issue":"4","key":"2_CR11","first-page":"265","volume":"10","author":"M. Benke","year":"2003","unstructured":"Benke, M., Dybjer, P., Jansson, P.: Universes for generic programs and proofs in dependent type theory. Nordic Journal of Computing\u00a010(4), 265\u2013289 (2003)","journal-title":"Nordic Journal of Computing"},{"key":"2_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"52","DOI":"10.1007\/BFb0054285","volume-title":"Mathematics of Program Construction","author":"R. Bird","year":"1998","unstructured":"Bird, R., Meertens, L.: Nested datatypes. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol.\u00a01422, pp. 52\u201367. Springer, Heidelberg (1998)"},{"issue":"2","key":"2_CR13","doi-asserted-by":"publisher","first-page":"200","DOI":"10.1007\/s001650050047","volume":"11","author":"R. Bird","year":"1999","unstructured":"Bird, R., Paterson, R.: Generalised folds for nested datatypes. Formal Aspects of Computing\u00a011(2), 200\u2013222 (1999)","journal-title":"Formal Aspects of Computing"},{"unstructured":"Chen, J., Appel, A.W.: Dictionary passing for polytypic polymorphism. Technical Report TR-635-01, Princeton University (2001)","key":"2_CR14"},{"key":"2_CR15","first-page":"90","volume-title":"Haskell 2002","author":"J. Cheney","year":"2002","unstructured":"Cheney, J., Hinze, R.: A lightweight implementation of generics and dynamics. In: Chakravarty, M. (ed.) Haskell 2002. Proceedings of the 2002 ACM SIGPLAN workshop on Haskell, pp. 90\u2013104. ACM Press, New York (2002)"},{"doi-asserted-by":"crossref","unstructured":"Clarke, D., L\u00f6h, A.: Generic Haskell, specifically. In: Gibbons and Jeuring [27], pp. 21\u201348","key":"2_CR16","DOI":"10.1007\/978-0-387-35672-3_2"},{"doi-asserted-by":"crossref","unstructured":"Clavel, M., Duran, F., Marti-Oliet, N.: Polytypic programming in Maude. In: Workshop on Rewriting Logic and its Applications 2000 (2000)","key":"2_CR17","DOI":"10.1016\/S1571-0661(05)80135-5"},{"unstructured":"Cockett, R., Fukushima, T.: About Charity. Yellow Series Report No. 92\/480\/18, Dep. of Computer Science, Univ. of Calgary (1992)","key":"2_CR18"},{"key":"2_CR19","first-page":"301","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 1998","author":"K. Crary","year":"1998","unstructured":"Crary, K., Weirich, S., Morrisett, J.G.: Intensional polymorphism in type-erasure semantics. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 1998, pp. 301\u2013312. ACM Press, New York (1998)"},{"key":"2_CR20","first-page":"23","volume-title":"Conference Record of POPL 1978: The 5th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"A. Demers","year":"1978","unstructured":"Demers, A., Donahue, J., Skinner, G.: Data types as values: polymorphism, type-checking, encapsulation. In: Conference Record of POPL 1978: The 5th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 23\u201330. ACM Press, New York (1978)"},{"doi-asserted-by":"crossref","unstructured":"Dubois, C., Rouaix, F., Weis, P.: Extensional polymorphism. In: Conference Record of POPL 1995: The 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 118\u2013129 (1995)","key":"2_CR21","DOI":"10.1145\/199448.199473"},{"unstructured":"Furuse, J.: Generic polymorphism in ML. In Journ\u00e9es Francophones des Langages Applicatifs (January 2001)","key":"2_CR22"},{"key":"2_CR23","doi-asserted-by":"publisher","first-page":"115","DOI":"10.1145\/949305.949317","volume-title":"OOPSLA 2003: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications","author":"R. Garcia","year":"2003","unstructured":"Garcia, R., Jarvi, J., Lumsdaine, A., Siek, J.G., Willcock, J.: A comparative study of language support for generic programming. In: OOPSLA 2003: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 115\u2013134. ACM Press, New York (2003)"},{"unstructured":"Gibbons, J.: Patterns in datatype-generic programming. In: Striegnitz, J., Davis, K. (eds.) Multiparadigm Programming. John von Neumann Institute for Computing (NIC), First International Workshop on Declarative Programming in the Context of Object-Oriented Languages (DPCOOL), vol.\u00a027, pp. 277\u2013289 (2003)","key":"2_CR24"},{"key":"2_CR25","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1007\/11776178","volume-title":"Generic Programming, Advanced Lectures","author":"J. Gibbons","year":"2006","unstructured":"Gibbons, J.: Datatype-generic programming. In: Backhouse, R., Gibbons, J., Hinze, R., Jeuring, J. (eds.) Generic Programming, Advanced Lectures. LNCS, vol.\u00a0419, pp. 1\u201371. Springer, Heidelberg (2006)"},{"issue":"2","key":"2_CR26","doi-asserted-by":"publisher","first-page":"108","DOI":"10.1016\/j.scico.2006.01.006","volume":"65","author":"J. Gibbons","year":"2007","unstructured":"Gibbons, J.: Metamorphisms: Streaming representation-changers. Science of Computer Programming\u00a065(2), 108\u2013139 (2007)","journal-title":"Science of Computer Programming"},{"key":"2_CR27","series-title":"IFIP","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-387-35672-3","volume-title":"Generic Programming","author":"J. Gibbons","year":"2003","unstructured":"Gibbons, J., Jeuring, J.: Generic Programming. IFIP, vol.\u00a0243. Kluwer Academic Publishers, Dordrecht (2003)"},{"unstructured":"Gibbons, J., Paterson, R.: Parametric datatype-genericity. Unpublished manuscript (2006)","key":"2_CR28"},{"unstructured":"Hagg, P.: A framework for developing generic XML Tools. Master\u2019s thesis, Department of Information and Computing Sciences, Utrecht University (2002)","key":"2_CR29"},{"doi-asserted-by":"crossref","unstructured":"Harper, R., Morrisett, G.: Compiling polymorphism using intensional type analysis. In: Conference Record of POPL 1995: The 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 130\u2013141 (1995)","key":"2_CR30","DOI":"10.1145\/199448.199475"},{"unstructured":"Hinze, R.: A generic programming extension for Haskell. In: Meijer, E. (ed.) Proceedings of the Third Haskell Workshop, Technical report of Utrecht University, UU-CS-1999-28 (1999)","key":"2_CR31"},{"issue":"3","key":"2_CR32","doi-asserted-by":"publisher","first-page":"305","DOI":"10.1017\/S0956796800003701","volume":"10","author":"R. Hinze","year":"2000","unstructured":"Hinze, R.: Functional pearl: Perfect trees and bit-reversal permutations. Journal of Functional Programming\u00a010(3), 305\u2013317 (2000)","journal-title":"Journal of Functional Programming"},{"unstructured":"Hinze, R.: Generic Programs and Proofs. Habilitationsschrift, Bonn University (2000)","key":"2_CR33"},{"issue":"2-3","key":"2_CR34","doi-asserted-by":"publisher","first-page":"129","DOI":"10.1016\/S0167-6423(02)00025-4","volume":"43","author":"R. Hinze","year":"2002","unstructured":"Hinze, R.: Polytypic values possess polykinded types. Science of Computer Programming\u00a043(2-3), 129\u2013159 (2002)","journal-title":"Science of Computer Programming"},{"key":"2_CR35","first-page":"236","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2004","author":"R. Hinze","year":"2004","unstructured":"Hinze, R.: Generics for the masses. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2004, pp. 236\u2013243. ACM Press, New York (2004)"},{"key":"2_CR36","doi-asserted-by":"publisher","first-page":"451","DOI":"10.1017\/S0956796806006022","volume":"16","author":"R. Hinze","year":"2006","unstructured":"Hinze, R.: Generics for the masses. Journal of Functional Programming\u00a016, 451\u2013482 (2006)","journal-title":"Journal of Functional Programming"},{"key":"2_CR37","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"57","DOI":"10.1007\/978-3-540-45191-4_2","volume-title":"Generic Programming","author":"R. Hinze","year":"2003","unstructured":"Hinze, R., Jeuring, J.: Generic Haskell: applications. In: Backhouse, R., Gibbons, J. (eds.) Generic Programming. LNCS, vol.\u00a02793, pp. 57\u201397. Springer, Heidelberg (2003)"},{"key":"2_CR38","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-540-45191-4_1","volume-title":"Generic Programming","author":"R. Hinze","year":"2003","unstructured":"Hinze, R., Jeuring, J.: Generic Haskell: practice and theory. In: Backhouse, R., Gibbons, J. (eds.) Generic Programming. LNCS, vol.\u00a02793, pp. 1\u201356. Springer, Heidelberg (2003)"},{"issue":"1-2","key":"2_CR39","doi-asserted-by":"publisher","first-page":"117","DOI":"10.1016\/j.scico.2003.07.001","volume":"51","author":"R. Hinze","year":"2004","unstructured":"Hinze, R., Jeuring, J., L\u00f6h, A.: Type-indexed data types. Science of Computer Programming\u00a051(1-2), 117\u2013151 (2004)","journal-title":"Science of Computer Programming"},{"doi-asserted-by":"crossref","unstructured":"Hinze, R., Jeuring, J., L\u00f6h, A.: Comparing Approaches to Generic Programming in Haskell. Technical Report UU-CS-2006-022, Utrecht University (2006)","key":"2_CR40","DOI":"10.1007\/978-3-540-76786-2_2"},{"unstructured":"Hinze, R., Jones, S.P.: Derivable type classes. In: Hutton, G. (ed.) Proceedings of the 4th Haskell Workshop (2000)","key":"2_CR41"},{"key":"2_CR42","series-title":"Lecture Notes in Computer Science","volume-title":"Datatype-Generic Programming, Advanced Lectures","author":"R. Hinze","year":"2006","unstructured":"Hinze, R., L\u00f6h, A.: Generic programming, now! In: Backhouse, R., Gibbons, J., Hinze, R., Jeuring, J. (eds.) Datatype-Generic Programming, Advanced Lectures. LNCS, vol.\u00a04719, Springer, Heidelberg (2006)"},{"key":"2_CR43","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"180","DOI":"10.1007\/11783596_13","volume-title":"Mathematics of Program Construction","author":"R. Hinze","year":"2006","unstructured":"Hinze, R., L\u00f6h, A.: Scrap Your Boilerplate revolutions. In: Uustalu, T. (ed.) MPC 2006. LNCS, vol.\u00a04014, pp. 180\u2013208. Springer, Heidelberg (2006)"},{"key":"2_CR44","series-title":"Lecture Notes in Computer Science","volume-title":"Functional and Logic Programming","author":"R. Hinze","year":"2006","unstructured":"Hinze, R., L\u00f6h, A., Oliveira, B.C.d.S.: Scrap Your Boilerplate reloaded. In: Wadler, P., Hagiya, M. (eds.) FLOPS 2006. LNCS, vol.\u00a03945, Springer, Heidelberg (2006)"},{"key":"2_CR45","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"209","DOI":"10.1007\/11783596_14","volume-title":"Mathematics of Program Construction","author":"S. Holdermans","year":"2006","unstructured":"Holdermans, S., Jeuring, J., L\u00f6h, A., Rodriguez, A.: Generic views on data types. In: Uustalu, T. (ed.) MPC 2006. LNCS, vol.\u00a04014, pp. 209\u2013234. Springer, Heidelberg (2006)"},{"issue":"5","key":"2_CR46","doi-asserted-by":"publisher","first-page":"549","DOI":"10.1017\/S0956796897002864","volume":"7","author":"G. Huet","year":"1997","unstructured":"Huet, G.: The zipper. Journal of Functional Programming\u00a07(5), 549\u2013554 (1997)","journal-title":"Journal of Functional Programming"},{"key":"2_CR47","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"53","DOI":"10.1007\/3-540-59451-5_3","volume-title":"Advanced Functional Programming","author":"J. Hughes","year":"1995","unstructured":"Hughes, J.: The design of a pretty-printing library. In: Jeuring, J., Meijer, E. (eds.) Advanced Functional Programming. LNCS, vol.\u00a0925, pp. 53\u201396. Springer, Heidelberg (1995)"},{"key":"2_CR48","doi-asserted-by":"crossref","first-page":"470","DOI":"10.1145\/263699.263763","volume-title":"Conference Record of POPL 1997: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"P. Jansson","year":"1997","unstructured":"Jansson, P., Jeuring, J.: PolyP \u2013 a polytypic programming language extension. In: Conference Record of POPL 1997: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 470\u2013482. ACM Press, New York (1997)"},{"doi-asserted-by":"crossref","unstructured":"Jansson, P., Jeuring, J.: PolyLib - a polytypic function library. In: Workshop on Generic Programming, Marstrand (June 1998)","key":"2_CR49","DOI":"10.1017\/S095679689800313X"},{"issue":"1","key":"2_CR50","doi-asserted-by":"publisher","first-page":"35","DOI":"10.1016\/S0167-6423(01)00020-X","volume":"43","author":"P. Jansson","year":"2002","unstructured":"Jansson, P., Jeuring, J.: Polytypic data conversion programs. Science of Computer Programming\u00a043(1), 35\u201375 (2002)","journal-title":"Science of Computer Programming"},{"key":"2_CR51","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","DOI":"10.1007\/978-3-540-77294-1","volume-title":"Testing properties of generic functions","author":"P. Jansson","year":"2007","unstructured":"Jansson, P., Jeuring, J.: students of\u00a0the Utrecht University Generic Programming\u00a0class. In: Horv\u00e1th, Z. (ed.) Testing properties of generic functions. Proceedings 18th International Symposium on Implementation and Application of Functional Languages, IFL 2006. LNCS, vol.\u00a04449, Springer, Heidelberg (2007)"},{"key":"2_CR52","doi-asserted-by":"publisher","first-page":"307","DOI":"10.1007\/s100090050037","volume":"2","author":"C. Barry Jay","year":"1999","unstructured":"Barry Jay, C.: Programming in FISh. International Journal on Software Tools for Technology Transfer\u00a02, 307\u2013315 (1999)","journal-title":"International Journal on Software Tools for Technology Transfer"},{"key":"2_CR53","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"217","DOI":"10.1007\/3-540-45413-6_19","volume-title":"Typed Lambda Calculi and Applications","author":"C. Barry Jay","year":"2001","unstructured":"Barry Jay, C.: Distinguishing data structures and functions: the constructor calculus and functorial types. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol.\u00a02044, pp. 217\u2013239. Springer, Heidelberg (2001)"},{"issue":"6","key":"2_CR54","doi-asserted-by":"publisher","first-page":"911","DOI":"10.1145\/1034774.1034775","volume":"26","author":"C. Barry Jay","year":"2004","unstructured":"Barry Jay, C.: The pattern calculus. ACM Trans. Program. Lang. Syst.\u00a026(6), 911\u2013937 (2004)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"2_CR55","series-title":"Lecture Notes in Computer Science","volume-title":"Programming Languages and Systems","author":"C. Barry Jay","year":"2006","unstructured":"Barry Jay, C., Kesner, D.: Pure pattern calculus. In: Sestoft, P. (ed.) ESOP 2006 and ETAPS 2006. LNCS, vol.\u00a03924, Springer, Heidelberg (2006)"},{"issue":"6","key":"2_CR56","doi-asserted-by":"publisher","first-page":"573","DOI":"10.1017\/S0956796898003128","volume":"8","author":"C. Barry Jay","year":"1998","unstructured":"Barry Jay, C., Bell\u00e9, G., Moggi, E.: Functorial ML. Journal of Functional Programming\u00a08(6), 573\u2013619 (1998)","journal-title":"Journal of Functional Programming"},{"key":"2_CR57","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"68","DOI":"10.1007\/3-540-61628-4_3","volume-title":"Advanced Functional Programming","author":"J. Jeuring","year":"1996","unstructured":"Jeuring, J., Jansson, P.: Polytypic programming. In: Launchbury, J., Meijer, E., Sheard, T. (eds.) Advanced Functional Programming. LNCS, vol.\u00a01129, pp. 68\u2013114. Springer, Heidelberg (1996)"},{"unstructured":"Jeuring, J., Plasmeijer, R.: Generic programming for software evolution. In: Informal proceedings of the ERCIM workshop on Software Evolution (2006)","key":"2_CR58"},{"unstructured":"Kiselyov, O.: Smash your boiler-plate without class and Typeable, Published on the Haskell mailing list (2006)","key":"2_CR59"},{"key":"2_CR60","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44854-3_6","volume-title":"Implementation of Functional Languages","author":"P. Koopman","year":"2003","unstructured":"Koopman, P., Alimarine, A., Tretmans, J., Plasmeijer, R.: Gast: Generic Automated Software Testing. In: Pe\u00f1a, R., Arts, T. (eds.) IFL 2002. LNCS, vol.\u00a02670, Springer, Heidelberg (2003)"},{"issue":"3","key":"2_CR61","doi-asserted-by":"publisher","first-page":"26","DOI":"10.1145\/640136.604179","volume":"38","author":"R. L\u00e4mmel","year":"2003","unstructured":"L\u00e4mmel, R., Peyton Jones, S.: Scrap your boilerplate: a practical approach to generic programming. ACM SIGPLAN Notices\u00a038(3), 26\u201337 (2003)","journal-title":"ACM SIGPLAN Notices"},{"key":"2_CR62","first-page":"204","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2005","author":"R. L\u00e4mmel","year":"2005","unstructured":"L\u00e4mmel, R., Peyton Jones, S.: Scrap your boilerplate with class: extensible generic functions. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2005, pp. 204\u2013215. ACM Press, New York (2005)"},{"key":"2_CR63","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","DOI":"10.1007\/11877028","volume-title":"Datatype-Generic Programming, Advanced Lectures","author":"R. L\u00e4mmel","year":"2006","unstructured":"L\u00e4mmel, R., Meijer, E.: Revealing the X\/O impedance mismatch. In: Backhouse, R., Gibbons, J., Hinze, R., Jeuring, J. (eds.) Datatype-Generic Programming, Advanced Lectures. LNCS, vol.\u00a04719, Springer, Heidelberg (2006)"},{"key":"2_CR64","first-page":"244","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2004","author":"R. L\u00e4mmel","year":"2004","unstructured":"L\u00e4mmel, R., Peyton Jones, S.: Scrap more boilerplate: reflection, zips, and generalised casts. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2004, pp. 244\u2013255. ACM Press, New York (2004)"},{"key":"2_CR65","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"137","DOI":"10.1007\/3-540-45587-6_10","volume-title":"Proceedings of 4th International Symposium on Practical Aspects of Declarative Languages, PADL 2002","author":"R. L\u00e4mmel","year":"2002","unstructured":"L\u00e4mmel, R., Visser, J.: Typed Combinators for Generic Traversal. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol.\u00a02257, pp. 137\u2013154. Springer, Heidelberg (2002)"},{"key":"2_CR66","first-page":"227","volume-title":"Conference Record of POPL 1977: The 4th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"B. Lang","year":"1977","unstructured":"Lang, B.: Threshold evaluation and the semantics of call by value, assignment and generic procedures. In: Conference Record of POPL 1977: The 4th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 227\u2013237. ACM Press, New York (1977)"},{"issue":"9","key":"2_CR67","doi-asserted-by":"publisher","first-page":"1060","DOI":"10.1109\/PROC.1980.11805","volume":"68","author":"M.M. Lehman","year":"1980","unstructured":"Lehman, M.M.: Programs, life cycles and the laws of software evolution. Proc. IEEE\u00a068(9), 1060\u20131078 (1980)","journal-title":"Proc. IEEE"},{"key":"2_CR68","volume-title":"Program Evolution: Processes of Software Change","author":"M.M. Lehman","year":"1985","unstructured":"Lehman, M.M., Belady, L.A.: Program Evolution: Processes of Software Change. Academic Press, London (1985)"},{"key":"2_CR69","volume-title":"Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns","author":"K.J. Lieberherr","year":"1996","unstructured":"Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston (1996)"},{"unstructured":"L\u00f6h, A.: Exploring Generic Haskell. PhD thesis, Utrecht University (2004)","key":"2_CR70"},{"key":"2_CR71","first-page":"141","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2003","author":"A. L\u00f6h","year":"2003","unstructured":"L\u00f6h, A., Clarke, D., Jeuring, J.: Dependency-style Generic Haskell. In: Shivers, O. (ed.) Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2003, pp. 141\u2013152. ACM Press, New York (2003)"},{"unstructured":"L\u00f6h, A., Hinze, R.: Open data types. In: Maher, M. (ed.) Proceedings of the 8th ACM-SIGPLAN International Symposium on Principles and Practice of Declarative Programming, PPDP 2006 (2006)","key":"2_CR72"},{"unstructured":"L\u00f6h, A., Jeuring, J.(eds.). The Generic Haskell user\u2019s guide, Version 1.42 - Coral release. Technical Report UU-CS-2005-004, Utrecht University (2005)","key":"2_CR73"},{"unstructured":"Lynagh, I.: Typing Template Haskell: Soft Type (August 2004), http:\/\/web.comlab.ox.ac.uk\/oucl\/work\/ian.lynagh\/papers\/Typing_Template_Haskell:_Soft_Types.ps","key":"2_CR74"},{"key":"2_CR75","doi-asserted-by":"publisher","first-page":"255","DOI":"10.1016\/0167-6423(90)90023-7","volume":"14","author":"G. Malcolm","year":"1990","unstructured":"Malcolm, G.: Data structures and program transformation. Science of Computer Programming\u00a014, 255\u2013279 (1990)","journal-title":"Science of Computer Programming"},{"key":"2_CR76","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"130","DOI":"10.1007\/11546382_3","volume-title":"Advanced Functional Programming","author":"C. McBride","year":"2005","unstructured":"McBride, C.: Epigram: practical programming with dependent types. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol.\u00a03622, pp. 130\u2013170. Springer, Heidelberg (2005)"},{"key":"2_CR77","doi-asserted-by":"publisher","first-page":"348","DOI":"10.1016\/0022-0000(78)90014-4","volume":"17","author":"R. Milner","year":"1978","unstructured":"Milner, R.: A theory of type polymorphism in programming. Journal of Computer and Systems Sciences\u00a017, 348\u2013375 (1978)","journal-title":"Journal of Computer and Systems Sciences"},{"key":"2_CR78","series-title":"Electronic Lecture Notes in Computer Science","first-page":"265","volume-title":"Proceedings of the 8th Conference on Category Theory and Computer Science, CTCS 1999","author":"E. Moggi","year":"1999","unstructured":"Moggi, E., Bell\u00e8,, Barry Jay, C.: Monads, shapely functors and traversals. In: Hoffman, M., Pavlovic\u0300,, Rosolini, P. (eds.) Proceedings of the 8th Conference on Category Theory and Computer Science, CTCS 1999. Electronic Lecture Notes in Computer Science, vol.\u00a024, pp. 265\u2013286. Elsevier, Amsterdam (1999)"},{"key":"2_CR79","volume-title":"STL Tutorial and Reference Guide, Second Edition: C++ Programming with the Standard Template Library","author":"D.R. Musser","year":"2001","unstructured":"Musser, D.R., Derge, G.J., Saini, A.: STL Tutorial and Reference Guide, Second Edition: C++ Programming with the Standard Template Library, 2 nd edn. Addison-Wesley, Reading (2001)","edition":"2"},{"key":"2_CR80","doi-asserted-by":"publisher","first-page":"45","DOI":"10.1145\/1159861.1159868","volume-title":"Proceedings of the of the ACM SIGPLAN Workshop on Generic Programming 2006","author":"P. Nogueira","year":"2006","unstructured":"Nogueira, P.: Context-parametric polykinded types. In: Hinze, R. (ed.) Proceedings of the of the ACM SIGPLAN Workshop on Generic Programming 2006, pp. 45\u201354. ACM Press, New York (2006)"},{"key":"2_CR81","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"168","DOI":"10.1007\/978-3-540-27861-0_11","volume-title":"Implementation of Functional Languages","author":"U. Norell","year":"2004","unstructured":"Norell, U., Jansson, P.: Polytypic programming in Haskell. In: Trinder, P., Michaelson, G.J., Pe\u00f1a, R. (eds.) IFL 2003. LNCS, vol.\u00a03145, pp. 168\u2013184. Springer, Heidelberg (2004)"},{"key":"2_CR82","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"314","DOI":"10.1007\/978-3-540-27764-4_17","volume-title":"Mathematics of Program Construction","author":"U. Norell","year":"2004","unstructured":"Norell, U., Jansson, P.: Prototyping generic programming in Template Haskell. In: Kozen, D. (ed.) MPC 2004. LNCS, vol.\u00a03125, pp. 314\u2013333. Springer, Heidelberg (2004)"},{"key":"2_CR83","volume-title":"Proceedings Haskell Workshop","author":"B.C. Oliveira","year":"2005","unstructured":"Oliveira, B.C.d.S., Gibbons, J.: TypeCase: A design pattern for type-indexed functions. In: L\u00f6h, A. (ed.) Proceedings Haskell Workshop, ACM Press, New York (2005)"},{"unstructured":"Oliveira, B.C.d.S., Hinze, R., L\u00f6h, A.: Generics as a library. In: Nilsson, H. (ed.) Proceedings of the 7th Symposium on Trends in Functional Programming, Nottingham, UK (April 19-21, 2006)","key":"2_CR84"},{"unstructured":"OMG.Corba, http:\/\/www.omg.org\/corba\/","key":"2_CR85"},{"unstructured":"Peyton Jones, S., et al.: Haskell 98, Language and Libraries. The Revised Report. A special issue of the Journal of Functional Programming (2003)","key":"2_CR86"},{"unstructured":"Powell, A.L.: A literature review on the quantification of software change. Technical Report YCS 305, Computer Science, University of York (1998)","key":"2_CR87"},{"doi-asserted-by":"crossref","unstructured":"Reig, F.: Generic proofs for combinator-based generic programs. In: Loidl, H.-W. (ed.) Trends in Functional Programming, vol.\u00a05, Intellect (2006)","key":"2_CR88","DOI":"10.2307\/j.ctv36xw0k5.5"},{"unstructured":"Schuman, S.A.: On generic functions. In: Schuman, S.A. (ed.) First IFIP WG 2.1 Working Conference on New Directions in Algorithmic Languages 1975, pp. 169\u2013192 IRIA (1975)","key":"2_CR89"},{"key":"2_CR90","series-title":"Lecture Notes in Computer Science","volume-title":"Datatype-Generic Programming, Advanced Lectures","author":"T. Sheard","year":"2006","unstructured":"Sheard, T.: Generic programming in \u03a9mega. In: Backhouse, R., Gibbons, J., Hinze, R., Jeuring, J. (eds.) Datatype-Generic Programming, Advanced Lectures. LNCS, vol.\u00a04719, Springer, Heidelberg (2006)"},{"unstructured":"de Vries, M.: Specializing type-indexed values by partial evaluation. Master\u2019s thesis, Rijksuniversiteit Groningen (2004)","key":"2_CR91"},{"key":"2_CR92","first-page":"347","volume-title":"Functional Programming Languages and Computer Architecture, FPCA 1989","author":"P. Wadler","year":"1989","unstructured":"Wadler, P.: Theorems for free! In: Functional Programming Languages and Computer Architecture, FPCA 1989, pp. 347\u2013359. ACM Press, New York (1989)"},{"key":"2_CR93","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"113","DOI":"10.1007\/3-540-15975-4_33","volume-title":"Functional Programming Languages and Computer Architecture","author":"P. Wadler","year":"1985","unstructured":"Wadler, P.: How to replace failure by a list of successes. In: Jouannaud, J.-P. (ed.) Functional Programming Languages and Computer Architecture. LNCS, vol.\u00a0201, pp. 113\u2013128. Springer, New York (1985)"},{"unstructured":"Wallace, M., Runciman, C.: Heap compression and binary I\/O in Haskell. In: 2nd ACM Haskell Workshop (1997)","key":"2_CR94"},{"key":"2_CR95","volume-title":"Programming Language Design Concepts","author":"D.A. Watt","year":"2004","unstructured":"Watt, D.A.: Programming Language Design Concepts. John Wiley & Sons, Chichester (2004)"},{"key":"2_CR96","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"98","DOI":"10.1007\/3-540-45927-8_8","volume-title":"Programming Languages and Systems","author":"S. Weirich","year":"2002","unstructured":"Weirich, S.: Higher-order intensional type analysis. In: Le M\u00e9tayer, D. (ed.) ESOP 2002 and ETAPS 2002. LNCS, vol.\u00a02305, pp. 98\u2013114. Springer, Heidelberg (2002)"},{"key":"2_CR97","first-page":"1","volume-title":"Haskell 2006: Proceedings of the 2006 ACM SIGPLAN workshop on Haskell","author":"S. Weirich","year":"2006","unstructured":"Weirich, S.: Replib: a library for derivable type classes. In: Haskell 2006: Proceedings of the 2006 ACM SIGPLAN workshop on Haskell, pp. 1\u201312. ACM Press, New York (2006)"},{"unstructured":"Weirich, S., Huang, L.: A design for type-directed programming in Java. In: Workshop on Object-Oriented Developments, WOOD 2004 (2004)","key":"2_CR98"},{"unstructured":"Winstanley, N., Meacham, J.: The DrIFT manual (1997-2005), http:\/\/repetae.net \/~john\/computer\/haskell\/DrIFT\/","key":"2_CR99"},{"unstructured":"Xi, H.: Dependent types in practical programming. PhD thesis, Carnegie Mellon University (1998)","key":"2_CR100"}],"container-title":["Lecture Notes in Computer Science","Datatype-Generic Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-76786-2_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,5,14]],"date-time":"2023-05-14T20:31:10Z","timestamp":1684096270000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-76786-2_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007]]},"ISBN":["9783540767855","9783540767862"],"references-count":100,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-76786-2_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2007]]}}}