{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,5]],"date-time":"2024-09-05T00:29:55Z","timestamp":1725496195027},"publisher-location":"Berlin, Heidelberg","reference-count":45,"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_3","type":"book-chapter","created":{"date-parts":[[2007,11,29]],"date-time":"2007-11-29T10:37:47Z","timestamp":1196332667000},"page":"150-208","source":"Crossref","is-referenced-by-count":8,"title":["Generic Programming, Now!"],"prefix":"10.1007","author":[{"given":"Ralf","family":"Hinze","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andres","family":"L\u00f6h","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"3_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-46028-4_11","volume-title":"Implementation of Functional Languages","author":"A. Alimarine","year":"2002","unstructured":"Alimarine, A., Plasmeijer, R.: A generic programming extension for Clean. In: Arts, T., Mohnen, M. (eds.) IFL 2002. LNCS, vol.\u00a02312, Springer, Heidelberg (2002)"},{"key":"3_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"28","DOI":"10.1007\/10704973_2","volume-title":"Advanced Functional Programming","author":"R. Backhouse","year":"1999","unstructured":"Backhouse, R., Jansson, P., Jeuring, J., Meertens, L.: Generic Programming: An Introduction. In: Swierstra, S.D., Henriques, P.R., Oliveira, J.N. (eds.) AFP 1998. LNCS, vol.\u00a01608, pp. 28\u2013115. Springer, Heidelberg (1999)"},{"key":"3_CR3","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)"},{"key":"3_CR4","unstructured":"Braun, W., Rem, M.: A logarithmic implementation of flexible arrays. Memorandum MR83\/4, Eindhoven University of Technology (1983)"},{"key":"3_CR5","doi-asserted-by":"crossref","first-page":"90","DOI":"10.1145\/581690.581698","volume-title":"Proceedings of the 2002 ACM SIGPLAN Haskell Workshop","author":"J. Cheney","year":"2002","unstructured":"Cheney, J., Hinze, R.: A lightweight implementation of generics and dynamics. In: Chakravarty, M.M.T. (ed.) Proceedings of the 2002 ACM SIGPLAN Haskell Workshop, pp. 90\u2013104. ACM Press, New York (2002)"},{"key":"3_CR6","first-page":"21","volume-title":"Proceedings of the IFIP TC2 Working Conference on Generic Programming, Schloss Dagstuhl","author":"D. Clarke","year":"2002","unstructured":"Clarke, D., L\u00f6h, A.: Generic Haskell, specifically. In: Gibbons, J., Jeuring, J. (eds.) Proceedings of the IFIP TC2 Working Conference on Generic Programming, Schloss Dagstuhl, pp. 21\u201348. Kluwer Academic Publishers, Dordrecht (2002)"},{"issue":"9","key":"3_CR7","doi-asserted-by":"publisher","first-page":"233","DOI":"10.1145\/317765.317906","volume":"34","author":"K. Crary","year":"1999","unstructured":"Crary, K., Weirich, S.: Flexible type analysis. ACM SIGPLAN Notices\u00a034(9), 233\u2013248 (1999) (Proceedings of the fourth ACM SIGPLAN International Conference on Functional Programming (ICFP \u201999), Paris, France)","journal-title":"ACM SIGPLAN Notices"},{"key":"3_CR8","first-page":"301","volume-title":"Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP 1998)","author":"K. Crary","year":"1999","unstructured":"Crary, K., Weirich, S., Morrisett, G.: Intensional polymorphism in type-erasure semantics. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP 1998), Baltimore, MD, vol.\u00a0(34)1 of ACM SIGPLAN Notices, pp. 301\u2013312. ACM Press, New York (1999)"},{"key":"3_CR9","doi-asserted-by":"crossref","unstructured":"Fegaras, L., Sheard, T.: Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space). In: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, St. Petersburg Beach, Florida, United States, pp. 284\u2013294 (1996)","DOI":"10.1145\/237721.237792"},{"key":"3_CR10","unstructured":"Girard, J.-Y.: Interpr\u00e9tation foncionnelle et \u00e9limination des coupures de l\u2019arithm\u00e9tique d\u2019order sup\u00e9rieur. PhD thesis, Universit\u00e9 de Paris VII (1972)"},{"issue":"2","key":"3_CR11","doi-asserted-by":"publisher","first-page":"109","DOI":"10.1145\/227699.227700","volume":"18","author":"C.V. Hall","year":"1996","unstructured":"Hall, C.V., Hammond, K., Peyton Jones, S.L., Wadler, P.L.: Type classes in Haskell. ACM Transactions on Programming Languages and Systems\u00a018(2), 109\u2013138 (1996)","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"3_CR12","doi-asserted-by":"crossref","unstructured":"Harper, R., Morrisett, G.: Compiling polymorphism using intensional type analysis. In: 22nd Symposium on Principles of Programming Languages, POPL 1995, pp. 130\u2013141 (1995)","DOI":"10.1145\/199448.199475"},{"issue":"3","key":"3_CR13","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"},{"key":"3_CR14","unstructured":"Hinze, R.: Memo functions, polytypically! In: Jeuring, J. (ed.) Proceedings of the 2nd Workshop on Generic Programming, Ponte de Lima, Portugal. The proceedings appeared as a technical report of Universiteit Utrecht, UU-CS-2000-19, pp. 17\u201332 (2000)"},{"key":"3_CR15","doi-asserted-by":"crossref","unstructured":"Hinze, R.: A new approach to generic functional programming. In: Reps, T.W. (ed.) Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2000), Boston, Massachusetts, January 19-21, pp. 119\u2013132 (2000)","DOI":"10.1145\/325694.325709"},{"key":"3_CR16","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, 129\u2013159 (2002)","journal-title":"Science of Computer Programming"},{"key":"3_CR17","doi-asserted-by":"crossref","unstructured":"Hinze, R.: Fun with phantom types. In: Gibbons, J., de Moor, O. (eds.) The Fun of Programming, pp. 245\u2013262 Palgrave Macmillan (2003), ISBN 1-4039-0772-2 hardback, ISBN 0-333-99285-7 paperback","DOI":"10.1007\/978-1-349-91518-7_12"},{"issue":"4&5","key":"3_CR18","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. J. Functional Programming\u00a016(4&5), 451\u2013483 (2006)","journal-title":"J. Functional Programming"},{"key":"3_CR19","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":"3_CR20","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)"},{"key":"3_CR21","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, 117\u2013151 (2004)","journal-title":"Science of Computer Programming"},{"key":"3_CR22","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":"3_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"13","DOI":"10.1007\/11737414_3","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: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol.\u00a03945, pp. 13\u201329. Springer, Heidelberg (2006)"},{"key":"3_CR24","doi-asserted-by":"crossref","unstructured":"Hinze, R., L\u00f6h, A., Oliveira, B.C.d.S.: Scrap Your Boilerplate reloaded. Technical Report IAI-TR-2006-2, Institut f\u00fcr Informatik III, Universit\u00e4t Bonn. (2006)","DOI":"10.1007\/11737414_3"},{"key":"3_CR25","series-title":"Electronic Notes in Theoretical Computer Science","volume-title":"Proceedings of the 2000 ACM SIGPLAN Haskell Workshop","author":"R. Hinze","year":"2001","unstructured":"Hinze, R., Peyton Jones, S.L.: Derivable type classes. In: Hutton, G. (ed.) Proceedings of the 2000 ACM SIGPLAN Haskell Workshop. Electronic Notes in Theoretical Computer Science, vol.\u00a041.1, Elsevier, Amsterdam (2001) The preliminary proceedings appeared as a University of Nottingham technical report"},{"issue":"3","key":"3_CR26","doi-asserted-by":"publisher","first-page":"323","DOI":"10.1017\/S0956796800000411","volume":"2","author":"G. Hutton","year":"1992","unstructured":"Hutton, G.: Higher-order functions for parsing. Journal of Functional Programming\u00a02(3), 323\u2013343 (1992)","journal-title":"Journal of Functional Programming"},{"key":"3_CR27","doi-asserted-by":"publisher","first-page":"470","DOI":"10.1145\/263699.263763","volume-title":"Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 1997)","author":"P. Jansson","year":"1997","unstructured":"Jansson, P., Jeuring, J.: PolyP-a polytypic programming language extension. In: Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 1997), Paris, France, pp. 470\u2013482. ACM Press, New York (1997)"},{"issue":"1","key":"3_CR28","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1017\/S0956796800001210","volume":"5","author":"M.P. Jones","year":"1995","unstructured":"Jones, M.P.: A system of constructor classes: overloading and implicit higher-order polymorphism. Journal of Functional Programming\u00a05(1), 1\u201335 (1995)","journal-title":"Journal of Functional Programming"},{"key":"3_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"230","DOI":"10.1007\/3-540-46425-5_15","volume-title":"Programming Languages and Systems","author":"M.P. Jones","year":"2000","unstructured":"Jones, M.P.: Type classes with functional dependencies. In: Smolka, G. (ed.) ESOP 2000 and ETAPS 2000. LNCS, vol.\u00a01782, pp. 230\u2013244. Springer, Heidelberg (2000)"},{"key":"3_CR30","unstructured":"L\u00e4mmel, R., Peyton Jones, S.L.: Scrap more boilerplate: reflection, zips, and generalised casts. In: Fisher, K. (ed.) Proceedings of the 2004 International Conference on Functional Programming, Snowbird, Utah, September 19-22, 2004, pp. 244\u2013255 (2004)"},{"key":"3_CR31","unstructured":"L\u00e4mmel, R., Peyton Jones, S.L.: Scrap your boilerplate with class: extensible generic functions. In: Pierce, B. (ed.) Proceedings of the 2005 International Conference on Functional Programming, Tallinn, Estonia (September 26-28, 2005)"},{"key":"3_CR32","doi-asserted-by":"crossref","unstructured":"Leijen, D., Meijer, E.: Domain-specific embedded compilers. In: Proceedings of the 2nd Conference on Domain-Specific Languages, Berkeley, CA, USENIX Association, pp. 109\u2013122 (1999)","DOI":"10.1145\/331960.331977"},{"key":"3_CR33","first-page":"133","volume-title":"Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming","author":"A. L\u00f6h","year":"2006","unstructured":"L\u00f6h, A., Hinze, R.: Open data types and open functions. In: Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, Venice, Italy, pp. 133\u2013144. ACM Press, New York (2006)"},{"key":"3_CR34","unstructured":"L\u00f6h, A.: Exploring Generic Haskell. PhD thesis, Utrecht University (2004)"},{"key":"3_CR35","unstructured":"L\u00f6h, A., Jeuring, J.: The Generic Haskell user\u2019s guide, version 1.42 - Coral release. Technical Report UU-CS-2005-004, Universiteit Utrecht (January 2005)"},{"key":"3_CR36","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":"3_CR37","doi-asserted-by":"crossref","unstructured":"Oliveira, B.C.d.S., Gibbons, J.: TypeCase: A design pattern for type-indexed functions. In: Leijen, D. (ed.) Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, Tallinn, Estonia, pp. 98\u2013109 (2005)","DOI":"10.1145\/1088348.1088358"},{"key":"3_CR38","volume-title":"Haskell 98 Language and Libraries","author":"S.L. Peyton Jones","year":"2003","unstructured":"Peyton Jones, S.L.: Haskell 98 Language and Libraries. Cambridge University Press, Cambridge (2003)"},{"key":"3_CR39","doi-asserted-by":"crossref","unstructured":"Peyton Jones, S.L., L\u00e4mmel, R.: Scrap your boilerplate: a practical approach to generic programming. In: Proceedings of the ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI 2003), New Orleans, pp. 26\u201337 (2003)","DOI":"10.1145\/640136.604179"},{"key":"3_CR40","unstructured":"The GHC Team. The Glorious Glasgow Haskell Compilation System User\u2019s Guide, Version 6.4.1 (2005), Available from http:\/\/www.haskell.org\/ghc\/"},{"key":"3_CR41","first-page":"82","volume-title":"Proceedings ICFP 2000: International Conference on Functional Programming","author":"V. Trifonov","year":"2000","unstructured":"Trifonov, V., Saha, B., Shao, Z.: Fully reflexive intensional type analysis. In: Proceedings ICFP 2000: International Conference on Functional Programming, pp. 82\u201393. ACM Press, New York (2000)"},{"key":"3_CR42","unstructured":"Wadler, P.: The expression problem. Note to Java Genericity mailing list (November 12, 1998)"},{"key":"3_CR43","doi-asserted-by":"publisher","first-page":"347","DOI":"10.1145\/99370.99404","volume-title":"The Fourth International Conference on Functional Programming Languages and Computer Architecture (FPCA 1989)","author":"P. Wadler","year":"1989","unstructured":"Wadler, P.: Theorems for free! In: The Fourth International Conference on Functional Programming Languages and Computer Architecture (FPCA 1989), London, UK, pp. 347\u2013359. Addison-Wesley, Reading (1989)"},{"key":"3_CR44","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"92","DOI":"10.1007\/3-540-45309-1_7","volume-title":"Programming Languages and Systems","author":"S. Weirich","year":"2001","unstructured":"Weirich, S.: Encoding intensional type analysis. In: Sands, D. (ed.) ESOP 2001 and ETAPS 2001. LNCS, vol.\u00a02028, pp. 92\u2013106. Springer, Heidelberg (2001)"},{"issue":"6","key":"3_CR45","doi-asserted-by":"publisher","first-page":"681","DOI":"10.1017\/S0956796804005179","volume":"14","author":"S. Weirich","year":"2004","unstructured":"Weirich, S.: Type-safe cast. Journal of Functional Programming\u00a014(6), 681\u2013695 (2004)","journal-title":"Journal of Functional Programming"}],"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_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,8,29]],"date-time":"2021-08-29T09:59:03Z","timestamp":1630231143000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-76786-2_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007]]},"ISBN":["9783540767855","9783540767862"],"references-count":45,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-76786-2_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2007]]}}}