{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T06:12:52Z","timestamp":1740118372792,"version":"3.37.3"},"reference-count":41,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2015,11,1]],"date-time":"2015-11-01T00:00:00Z","timestamp":1446336000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2019,11,15]],"date-time":"2019-11-15T00:00:00Z","timestamp":1573776000000},"content-version":"vor","delay-in-days":1475,"URL":"http:\/\/www.elsevier.com\/open-access\/userlicense\/1.0\/"}],"funder":[{"DOI":"10.13039\/501100003246","name":"NWO","doi-asserted-by":"publisher","award":["612.063.613"],"award-info":[{"award-number":["612.063.613"]}],"id":[{"id":"10.13039\/501100003246","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Science of Computer Programming"],"published-print":{"date-parts":[[2015,11]]},"DOI":"10.1016\/j.scico.2015.07.009","type":"journal-article","created":{"date-parts":[[2015,8,13]],"date-time":"2015-08-13T15:01:55Z","timestamp":1439478115000},"page":"145-169","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":1,"special_numbering":"P2","title":["Type-changing rewriting and semantics-preserving transformation"],"prefix":"10.1016","volume":"112","author":[{"given":"Sean","family":"Leather","sequence":"first","affiliation":[]},{"given":"Johan","family":"Jeuring","sequence":"additional","affiliation":[]},{"given":"Andres","family":"L\u00f6h","sequence":"additional","affiliation":[]},{"given":"Bram","family":"Schuur","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"year":"1998","series-title":"Term Rewriting and All That","author":"Baader","key":"10.1016\/j.scico.2015.07.009_br0010"},{"key":"10.1016\/j.scico.2015.07.009_br0020","series-title":"Proceedings of Category Theory and Computer Science","first-page":"159","article-title":"Categorical fixed point calculus","author":"Backhouse","year":"1995"},{"key":"10.1016\/j.scico.2015.07.009_br0030","series-title":"Proceedings of the International Symposium on Practical Aspects of Declarative Languages","first-page":"50","article-title":"Rewriting Haskell strings","author":"Coutts","year":"2007"},{"key":"10.1016\/j.scico.2015.07.009_br0040","series-title":"Proceedings of the International Workshop on Rule Based Programming","first-page":"17","article-title":"Strongly typed rewriting for coupled software transformation","author":"Cunha","year":"2006"},{"key":"10.1016\/j.scico.2015.07.009_br0050","series-title":"Proceedings of the Symposium on Principles of Programming Languages","first-page":"207","article-title":"Principal type-schemes for functional programs","author":"Damas","year":"1982"},{"key":"10.1016\/j.scico.2015.07.009_br0060","doi-asserted-by":"crossref","first-page":"199","DOI":"10.1016\/j.scico.2007.01.003","article-title":"An update calculus for expressing type-safe program updates","volume":"67","author":"Erwig","year":"2007","journal-title":"Sci. Comput. Program."},{"key":"10.1016\/j.scico.2015.07.009_br0070","series-title":"Proceedings of the Workshop on Haskell","first-page":"1","article-title":"The HERMIT in the machine: a plugin for the interactive transformation of GHC core language programs","author":"Farmer","year":"2012"},{"year":"1999","series-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler","key":"10.1016\/j.scico.2015.07.009_br0080"},{"key":"10.1016\/j.scico.2015.07.009_br0090","series-title":"Proceedings of Logic in Computer Science","first-page":"498","article-title":"Recursive types reduced to inductive types","author":"Freyd","year":"1990"},{"key":"10.1016\/j.scico.2015.07.009_br0100","series-title":"Proceedings of the Spring School on Datatype-Generic Programming","first-page":"1","article-title":"Datatype-generic programming","author":"Gibbons","year":"2007"},{"key":"10.1016\/j.scico.2015.07.009_br0110","series-title":"Proceedings of Mathematics of Program Construction","first-page":"110","article-title":"Unfolding abstract datatypes","author":"Gibbons","year":"2008"},{"key":"10.1016\/j.scico.2015.07.009_br0120","series-title":"Proceedings of the Conference on LISP and Functional Programming","first-page":"28","article-title":"Integrating functional and imperative programming","author":"Gifford","year":"1986"},{"issue":"2","key":"10.1016\/j.scico.2015.07.009_br0130","doi-asserted-by":"crossref","first-page":"227","DOI":"10.1017\/S0956796809007175","article-title":"The worker\/wrapper transformation","volume":"19","author":"Gill","year":"2009","journal-title":"J. Funct. Program."},{"key":"10.1016\/j.scico.2015.07.009_br0140","series-title":"Proceedings of the International Conference on Implementation and Application of Functional Languages","first-page":"125","article-title":"Stream fusion on Haskell unicode strings","author":"Harper","year":"2011"},{"key":"10.1016\/j.scico.2015.07.009_br0150","series-title":"Proceedings of Mathematics of Program Construction","first-page":"2","article-title":"Polytypic values possess polykinded types","author":"Hinze","year":"2000"},{"issue":"2","key":"10.1016\/j.scico.2015.07.009_br0160","doi-asserted-by":"crossref","first-page":"197","DOI":"10.1017\/S0956796805005769","article-title":"Finger trees: a simple general-purpose data structure","volume":"16","author":"Hinze","year":"2006","journal-title":"J. Funct. Program."},{"issue":"3","key":"10.1016\/j.scico.2015.07.009_br0170","doi-asserted-by":"crossref","first-page":"141","DOI":"10.1016\/0020-0190(86)90059-1","article-title":"A novel representation of lists and its application to the function \u201creverse\u201d","volume":"22","author":"Hughes","year":"1986","journal-title":"Inf. Process. Lett."},{"key":"10.1016\/j.scico.2015.07.009_br0180","series-title":"Proceedings of the International Workshop on Types for Proofs and Programs","first-page":"259","article-title":"Coercions in Hindley\u2013Milner systems","author":"Kie\u00dfling","year":"2003"},{"key":"10.1016\/j.scico.2015.07.009_br0190","series-title":"Proceedings of the International Conference on Functional Programming","first-page":"192","article-title":"Backtracking, interleaving, and terminating monad transformers","author":"Kiselyov","year":"2005"},{"author":"Leather","key":"10.1016\/j.scico.2015.07.009_br0200"},{"key":"10.1016\/j.scico.2015.07.009_br0210","series-title":"Proceedings of the International Conference on Implementation and Application of Functional Languages","first-page":"159","article-title":"Pull-ups, push-downs, and passing it around: exercises in functional incrementalization","author":"Leather","year":"2011"},{"key":"10.1016\/j.scico.2015.07.009_br0220","series-title":"Proceedings of the Workshop on Partial Evaluation and Program Manipulation","first-page":"109","article-title":"Type-changing rewriting and semantics-preserving transformation","author":"Leather","year":"2014"},{"key":"10.1016\/j.scico.2015.07.009_br0230","series-title":"Proceedings of the Workshop on Haskell","first-page":"27","article-title":"Tool support for refactoring functional programs","author":"Li","year":"2003"},{"key":"10.1016\/j.scico.2015.07.009_br0240","series-title":"Proceedings of the International Conference on Functional Programming and Computer Architecture","first-page":"324","article-title":"Bananas in space: extending fold and unfold to exponential types","author":"Meijer","year":"1995"},{"issue":"3","key":"10.1016\/j.scico.2015.07.009_br0250","doi-asserted-by":"crossref","first-page":"348","DOI":"10.1016\/0022-0000(78)90014-4","article-title":"A theory of type polymorphism in programming","volume":"17","author":"Milner","year":"1978","journal-title":"J. Comput. Syst. Sci."},{"key":"10.1016\/j.scico.2015.07.009_br0260","series-title":"Proceedings of the Symposium on Principles of Programming Languages","first-page":"263","article-title":"Representation independence and data abstraction","author":"Mitchell","year":"1986"},{"key":"10.1016\/j.scico.2015.07.009_br0270","series-title":"Advanced Topics in Types and Programming Languages","first-page":"245","article-title":"Typed operational reasoning","author":"Pitts","year":"2005"},{"key":"10.1016\/j.scico.2015.07.009_br0280","first-page":"513","article-title":"Types, abstraction and parametric polymorphism","author":"Reynolds","year":"1983","journal-title":"Inf. Process."},{"year":"2013","series-title":"A type-changing, semantics-preserving program transformation system","author":"Schuur","key":"10.1016\/j.scico.2015.07.009_br0290"},{"issue":"1","key":"10.1016\/j.scico.2015.07.009_br0300","doi-asserted-by":"crossref","first-page":"113","DOI":"10.1017\/S0956796814000045","article-title":"Work it, wrap it, fix it, fold it","volume":"24","author":"Sculthorpe","year":"2014","journal-title":"J. Funct. Program."},{"key":"10.1016\/j.scico.2015.07.009_br0310","series-title":"Proceedings of the International Conference on Implementation and Application of Functional Languages","article-title":"The HERMIT in the tree: mechanizing program transformations in the GHC core language","author":"Sculthorpe","year":"2012"},{"issue":"11","key":"10.1016\/j.scico.2015.07.009_br0320","doi-asserted-by":"crossref","first-page":"1082","DOI":"10.1002\/spe.4380121109","article-title":"A short note concerning lazy reduction rules for append","volume":"12","author":"Sleep","year":"1982","journal-title":"Softw. Pract. Exp."},{"key":"10.1016\/j.scico.2015.07.009_br0330","series-title":"Proceedings of the International Conference on Functional Programming","first-page":"329","article-title":"A theory of typed coercions and its applications","author":"Swamy","year":"2009"},{"issue":"4","key":"10.1016\/j.scico.2015.07.009_br0340","doi-asserted-by":"crossref","first-page":"423","DOI":"10.1017\/S0956796808006758","article-title":"Data types \u00e0 la carte","volume":"18","author":"Swierstra","year":"2008","journal-title":"J. Funct. Program."},{"year":"2002","series-title":"PATH, a program transformation system for Haskell","author":"Tullsen","key":"10.1016\/j.scico.2015.07.009_br0350"},{"key":"10.1016\/j.scico.2015.07.009_br0360","series-title":"Proceedings of the Workshop on Haskell and Rewriting Techniques","article-title":"Type-changing program transformations with pattern matching","author":"van Eekelen","year":"2013"},{"issue":"1","key":"10.1016\/j.scico.2015.07.009_br0370","doi-asserted-by":"crossref","first-page":"831","DOI":"10.1016\/j.jsc.2004.12.011","article-title":"A survey of strategies in rule-based program transformation systems","volume":"40","author":"Visser","year":"2005","journal-title":"J. Symb. Comput."},{"key":"10.1016\/j.scico.2015.07.009_br0380","series-title":"Proceedings of the Symposium on Principles of Programming Languages","first-page":"307","article-title":"Views: a way for pattern matching to cohabit with data abstraction","author":"Wadler","year":"1987"},{"key":"10.1016\/j.scico.2015.07.009_br0390","series-title":"Proceedings of the International Conference on Functional Programming and Computer Architecture","first-page":"347","article-title":"Theorems for free!","author":"Wadler","year":"1989"},{"key":"10.1016\/j.scico.2015.07.009_br0400","series-title":"Proceedings of the International Conference on Functional Programming","first-page":"333","article-title":"Binders unbound","author":"Weirich","year":"2011"},{"key":"10.1016\/j.scico.2015.07.009_br0410","series-title":"Proceedings of the International Conference on Functional Programming","first-page":"233","article-title":"Generic programming with fixed points for mutually recursive datatypes","author":"Yakushev","year":"2009"}],"container-title":["Science of Computer Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642315001434?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642315001434?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2019,11,14]],"date-time":"2019-11-14T20:03:48Z","timestamp":1573761828000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0167642315001434"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,11]]},"references-count":41,"alternative-id":["S0167642315001434"],"URL":"https:\/\/doi.org\/10.1016\/j.scico.2015.07.009","relation":{},"ISSN":["0167-6423"],"issn-type":[{"type":"print","value":"0167-6423"}],"subject":[],"published":{"date-parts":[[2015,11]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Type-changing rewriting and semantics-preserving transformation","name":"articletitle","label":"Article Title"},{"value":"Science of Computer Programming","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.scico.2015.07.009","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"Copyright \u00a9 2015 Elsevier B.V. All rights reserved.","name":"copyright","label":"Copyright"}]}}