{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,5]],"date-time":"2024-09-05T13:51:52Z","timestamp":1725544312996},"publisher-location":"Berlin, Heidelberg","reference-count":25,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540334385"},{"type":"electronic","value":"9783540334392"}],"license":[{"start":{"date-parts":[[2006,1,1]],"date-time":"2006-01-01T00:00:00Z","timestamp":1136073600000},"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":[[2006]]},"DOI":"10.1007\/11737414_3","type":"book-chapter","created":{"date-parts":[[2006,3,15]],"date-time":"2006-03-15T06:54:37Z","timestamp":1142405677000},"page":"13-29","source":"Crossref","is-referenced-by-count":43,"title":["\u201cScrap Your Boilerplate\u201d Reloaded"],"prefix":"10.1007","author":[{"given":"Ralf","family":"Hinze","sequence":"first","affiliation":[]},{"given":"Andres","family":"L\u00f6h","sequence":"additional","affiliation":[]},{"given":"Bruno C. d. S.","family":"Oliveira","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"3_CR1","doi-asserted-by":"crossref","unstructured":"L\u00e4mmel, R., Peyton Jones, S.: Scrap your boilerplate: a practical design pattern for generic programming. In: Types in Language Design and Implementation (2003)","DOI":"10.1145\/604174.604179"},{"key":"3_CR2","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","author":"P. Jansson","year":"1997","unstructured":"Jansson, P., Jeuring, J.: PolyP \u2013 a polytypic programming language extension. In: Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Paris, France, pp. 470\u2013482. ACM Press, New York (1997)"},{"key":"3_CR3","unstructured":"L\u00f6h, A.: Exploring Generic Haskell. PhD thesis, Utrecht University (2004)"},{"key":"3_CR4","unstructured":"L\u00f6h, A., Jeuring, J., Clarke, D., Hinze, R., Rodriguez, A., de Wit, J.: The Generic Haskell user\u2019s guide, version 1.42 (Coral). Technical Report UU-CS-2005-004, Institute of Information and Computing Sciences, Utrecht University (2005)"},{"key":"3_CR5","doi-asserted-by":"publisher","first-page":"224","DOI":"10.1145\/604131.604150","volume-title":"Proceedings of the ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages (POPL 2003)","author":"H. Xi","year":"2003","unstructured":"Xi, H., Chen, C., Chen, G.: Guarded recursive datatype constructors. In: Proceedings of the ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages (POPL 2003), pp. 224\u2013235. ACM Press, New York (2003)"},{"key":"3_CR6","unstructured":"Peyton Jones, S., Washburn, G., Weirich, S.: Wobbly types: Type inference for generalised algebraic data types. Technical Report MS-CIS-05-26, University of Pennsylvania (2004)"},{"volume-title":"Haskell 98 Language and Libraries: The Revised Report","year":"2003","key":"3_CR7","unstructured":"Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)"},{"key":"3_CR8","doi-asserted-by":"crossref","unstructured":"Hinze, R., L\u00f6h, A., Oliveira, B.: Scrap Your Boilerplate reloaded. Technical report, Universit\u00e4t Bonn (2006), http:\/\/www.informatik.unionn.de\/~loeh\/SYB0.html","DOI":"10.1007\/11737414_3"},{"key":"3_CR9","unstructured":"GHC Team: The Glasgow Haskell Compiler User\u2019s Guide (2005), http:\/\/haskell.org\/ghc\/docs\/latest\/users_guide.ps.gz"},{"key":"3_CR10","first-page":"307","volume-title":"Principles of Programming Languages","author":"P. Wadler","year":"1987","unstructured":"Wadler, P.: Views: a way for pattern matching to cohabit with data abstraction. In: Principles of Programming Languages, pp. 307\u2013313. ACM Press, New York (1987)"},{"key":"3_CR11","unstructured":"Burton, F.W., Meijer, E., Sansom, P., Thompson, S., Wadler, P.: Views: an extension to Haskell pattern matching (1996), http:\/\/www.haskell.org\/development\/views.html"},{"key":"3_CR12","doi-asserted-by":"crossref","unstructured":"Holdermans, S., Jeuring, J., L\u00f6h, A.: Generic views on data types. Technical Report UU-CS-2005-012, Utrecht University (2005)","DOI":"10.1007\/11783596_14"},{"key":"3_CR13","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, 265\u2013289 (2003)","journal-title":"Nordic Journal of Computing"},{"key":"3_CR14","unstructured":"Visser, E.: Language independent traversals for program transformation. In: Jeuring, J. (ed.) Workshop on Generic Programming (WGP 2000), Ponte de Lima, Portugal, Technical Report UU-CS-2000-19, Department of Information and Computing Sciences, Universiteit Utrecht (2000)"},{"key":"#cr-split#-3_CR15.1","doi-asserted-by":"crossref","unstructured":"Hinze, R.: Fun with phantom types. In: Gibbons, J., de Moor, O. (eds.) The Fun of Programming, Palgrave, pp. 245\u2013262 (2003);","DOI":"10.1007\/978-1-349-91518-7_12"},{"key":"#cr-split#-3_CR15.2","unstructured":"Scrap Your Boilerplate Reloaded 29"},{"key":"3_CR16","doi-asserted-by":"crossref","unstructured":"Oliveira, B., Gibbons, J.: Typecase: A design pattern for type-indexed functions. In: Haskell Workshop, pp. 98\u2013109 (2005)","DOI":"10.1145\/1088348.1088358"},{"key":"3_CR17","doi-asserted-by":"crossref","unstructured":"Li, H., Reinke, C., Thompson, S.: Tool support for refactoring functional programs. In: Jeuring, J. (ed.) HaskellWorkshop, pp. 27\u201338. Association for Computing Machinery (2003)","DOI":"10.1145\/871895.871899"},{"key":"3_CR18","doi-asserted-by":"crossref","unstructured":"Wadler, P.: Theorems for free! Functional Programming and Computer Architecture (1989)","DOI":"10.1145\/99370.99404"},{"key":"3_CR19","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 generalized casts. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP 2004), pp. 244\u2013255. ACM Press, New York (2004)"},{"key":"3_CR20","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":"3_CR21","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., Oliveira, J.N. (eds.) AFP 1998. LNCS, vol.\u00a01608, pp. 28\u2013115. Springer, Heidelberg (1999)"},{"key":"3_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/10722010_2","volume-title":"Mathematics of Program Construction","author":"R. Hinze","year":"2000","unstructured":"Hinze, R.: Polytypic values possess polykinded types. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol.\u00a01837, pp. 2\u201327. Springer, Heidelberg (2000)"},{"key":"3_CR23","unstructured":"Holdermans, S.: Generic views. Master\u2019s thesis, Utrecht University (2005)"},{"key":"3_CR24","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)","DOI":"10.2307\/j.ctv36xw0k5.5"}],"container-title":["Lecture Notes in Computer Science","Functional and Logic Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/11737414_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,5,6]],"date-time":"2023-05-06T15:31:58Z","timestamp":1683387118000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/11737414_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2006]]},"ISBN":["9783540334385","9783540334392"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/11737414_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2006]]}}}