The Kansas University rewrite engine A Haskell-Embedded Strategic Programming Language with Custom Closed Universes
When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual transformations to specific targets in the data being transformed. Strategic programming languages provide general-purpose infrastructure for this task,...
Uložené v:
| Vydané v: | Journal of functional programming Ročník 24; číslo 4; s. 434 - 473 |
|---|---|
| Hlavní autori: | , , |
| Médium: | Journal Article |
| Jazyk: | English |
| Vydavateľské údaje: |
Cambridge
Cambridge University Press
01.07.2014
|
| ISSN: | 0956-7968, 1469-7653 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual transformations to specific targets in the data being transformed.
Strategic programming languages
provide general-purpose infrastructure for this task, which the author of a transformation system can use for any algebraic data structure. The Kansas University Rewrite Engine (KURE) is a typed strategic programming language, implemented as a Haskell-embedded domain-specific language. KURE is designed to support
typed
transformations over
typed
data, and the main challenge is how to make such transformations compatible with generic traversal strategies that should operate over
any
type. Strategic programming in a typed setting has much in common with
datatype-generic programming
. Compared to other approaches to datatype-generic programming, the distinguishing feature of KURE's solution is that the user can configure the behaviour of traversals based on the
location
of each datum in the tree, beyond their behaviour being determined by the
type
of each datum. This article describes KURE's approach to assigning types to generic traversals, and the implementation of that approach. We also compare KURE, its design choices, and their consequences, with other approaches to strategic and datatype-generic programming. |
|---|---|
| AbstractList | Abstract When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual transformations to specific targets in the data being transformed. Strategic programming languages provide general-purpose infrastructure for this task, which the author of a transformation system can use for any algebraic data structure. The Kansas University Rewrite Engine (KURE) is a typed strategic programming language, implemented as a Haskell-embedded domain-specific language. KURE is designed to support typed transformations over typed data, and the main challenge is how to make such transformations compatible with generic traversal strategies that should operate over any type. Strategic programming in a typed setting has much in common with datatype-generic programming. Compared to other approaches to datatype-generic programming, the distinguishing feature of KURE's solution is that the user can configure the behaviour of traversals based on the location of each datum in the tree, beyond their behaviour being determined by the type of each datum. This article describes KURE's approach to assigning types to generic traversals, and the implementation of that approach. We also compare KURE, its design choices, and their consequences, with other approaches to strategic and datatype-generic programming. [PUBLICATION ABSTRACT] When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual transformations to specific targets in the data being transformed. Strategic programming languages provide general-purpose infrastructure for this task, which the author of a transformation system can use for any algebraic data structure. The Kansas University Rewrite Engine (KURE) is a typed strategic programming language, implemented as a Haskell-embedded domain-specific language. KURE is designed to support typed transformations over typed data, and the main challenge is how to make such transformations compatible with generic traversal strategies that should operate over any type. Strategic programming in a typed setting has much in common with datatype-generic programming . Compared to other approaches to datatype-generic programming, the distinguishing feature of KURE's solution is that the user can configure the behaviour of traversals based on the location of each datum in the tree, beyond their behaviour being determined by the type of each datum. This article describes KURE's approach to assigning types to generic traversals, and the implementation of that approach. We also compare KURE, its design choices, and their consequences, with other approaches to strategic and datatype-generic programming. |
| Author | FRISBY, NICOLAS SCULTHORPE, NEIL GILL, ANDY |
| Author_xml | – sequence: 1 givenname: NEIL surname: SCULTHORPE fullname: SCULTHORPE, NEIL – sequence: 2 givenname: NICOLAS surname: FRISBY fullname: FRISBY, NICOLAS – sequence: 3 givenname: ANDY surname: GILL fullname: GILL, ANDY |
| BookMark | eNp9kEtLAzEUhYNUsK3-AHcDuh3NzeQ1Sym-sODCdj1kMjeaUjM1SZX-e6fUlYKruzjfdy6cCRmFPiAh50CvgIK6fqG1kKqWGjilFLQ4ImPgsi6VFNWIjPdxuc9PyCSl1cBoJvSYXC7esHgyIZlULIP_xJh83hURv6LPWGB49QFPybEz64RnP3dKlne3i9lDOX--f5zdzEvLVJVL21JHTdVZ2xltnNO8Y0YwJZWsEC3HmhmuQbWcOeHaVsmO1jVzoJjkQFk1JReH3k3sP7aYcrPqtzEMLxsQEhjTnOqBUgfKxj6liK6xPpvs-5Cj8esGaLOfpPkzyWDCL3MT_buJu3-cbyVxYwM |
| CitedBy_id | crossref_primary_10_1145_2887747_2804303 crossref_primary_10_1016_j_scico_2015_09_003 |
| Cites_doi | 10.1145/1411286.1411301 10.1017/S0956796808006898 10.1017/S0956796806006034 10.1007/978-3-642-41582-1_6 10.1016/j.scico.2007.10.006 10.1007/978-3-642-03034-5_14 10.1145/1291201.1291208 10.1017/S0956796807006326 10.1145/321992.321996 10.1145/2364506.2364526 10.1007/978-3-540-25935-0_13 10.1016/j.scico.2007.11.003 10.1016/0020-0190(86)90059-1 10.1145/2517208.2517210 10.1145/1596638.1596652 10.1017/S0956796808006758 10.1017/S0956796810000183 10.1145/1869459.1869497 10.1016/j.jsc.2004.12.011 10.1145/1159842.1159856 10.1017/S0956796812000275 10.1145/2577080.2577089 10.1017/S0956796810000171 10.1023/A:1010000313106 |
| ContentType | Journal Article |
| Copyright | Copyright © Cambridge University Press 2014 |
| Copyright_xml | – notice: Copyright © Cambridge University Press 2014 |
| DBID | AAYXX CITATION 3V. 7SC 7XB 8AL 8FD 8FE 8FG 8FK ABUWG AFKRA ARAPS AZQEC BENPR BGLVJ CCPQU DWQXO GNUQQ HCIFZ JQ2 K7- L7M L~C L~D M0N P5Z P62 PHGZM PHGZT PKEHL PQEST PQGLB PQQKQ PQUKI PRINS Q9U |
| DOI | 10.1017/S0956796814000185 |
| DatabaseName | CrossRef ProQuest Central (Corporate) Computer and Information Systems Abstracts ProQuest Central (purchase pre-March 2016) Computing Database (Alumni Edition) Technology Research Database ProQuest SciTech Collection ProQuest Technology Collection ProQuest Central (Alumni) (purchase pre-March 2016) ProQuest Central (Alumni) ProQuest Central UK/Ireland Advanced Technologies & Computer Science Collection ProQuest Central Essentials - QC ProQuest Central ProQuest Technology Collection ProQuest One Community College ProQuest Central Korea ProQuest Central Student SciTech Premium Collection ProQuest Computer Science Collection Computer Science Database Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional Computing Database ProQuest advanced technologies & aerospace journals ProQuest Advanced Technologies & Aerospace Collection ProQuest Central Premium ProQuest One Academic (New) ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition (DO NOT USE) ProQuest One Applied & Life Sciences ProQuest One Academic (retired) ProQuest One Academic UKI Edition ProQuest Central China ProQuest Central Basic |
| DatabaseTitle | CrossRef Computer Science Database ProQuest Central Student Technology Collection Technology Research Database Computer and Information Systems Abstracts – Academic ProQuest One Academic Middle East (New) ProQuest Advanced Technologies & Aerospace Collection ProQuest Central Essentials ProQuest Computer Science Collection Computer and Information Systems Abstracts ProQuest Central (Alumni Edition) SciTech Premium Collection ProQuest One Community College ProQuest Central China ProQuest Central ProQuest One Applied & Life Sciences ProQuest Central Korea ProQuest Central (New) Advanced Technologies Database with Aerospace Advanced Technologies & Aerospace Collection ProQuest Computing ProQuest Central Basic ProQuest Computing (Alumni Edition) ProQuest One Academic Eastern Edition ProQuest Technology Collection ProQuest SciTech Collection Computer and Information Systems Abstracts Professional Advanced Technologies & Aerospace Database ProQuest One Academic UKI Edition ProQuest One Academic ProQuest Central (Alumni) ProQuest One Academic (New) |
| DatabaseTitleList | Computer Science Database CrossRef |
| Database_xml | – sequence: 1 dbid: BENPR name: ProQuest Central url: https://www.proquest.com/central sourceTypes: Aggregation Database |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1469-7653 |
| EndPage | 473 |
| ExternalDocumentID | 3428562221 10_1017_S0956796814000185 |
| Genre | Feature |
| GroupedDBID | -1D -1F -2P -2V -E. -~6 -~N .DC .FH 09C 09E 0E1 0R~ 29K 4.4 5GY 5VS 6OB 6~7 74X 74Y 7~V 85S 8FE 8FG 8R4 8R5 9M5 AAAZR AABES AABWE AACJH AAFUK AAGFV AAKNA AAKTX AAMNQ AANRG AARAB AASVR AATMM AAUIS AAUKB AAYXX ABBXD ABBZL ABEFU ABGDZ ABITZ ABJNI ABKKG ABMWE ABQTM ABQWD ABROB ABTCQ ABUWG ABVFV ABVKB ABVZP ABXAU ABXHF ABZCX ABZUI ACAJB ACBMC ACDLN ACEJA ACETC ACGFS ACIMK ACRPL ACUIJ ACYZP ACZBM ACZUX ACZWT ADCGK ADDNB ADFEC ADKIL ADNMO ADOVH ADOVT ADVJH AEBAK AEBPU AEHGV AEMFK AEMTW AENCP AENEX AENGE AFFHD AFFUJ AFKQG AFKRA AFLOS AFLVW AFUTZ AFZFC AGABE AGBYD AGJUD AGLWM AGQPQ AHQXX AHRGI AIGNW AIHIV AIOIP AISIE AJ7 AJCYY AJPFC AJQAS AKMAY AKZCZ ALMA_UNASSIGNED_HOLDINGS ALVPG ALWZO AMVHM ANOYL AQJOH ARABE ARAPS ARZZG ATUCA AUXHV AYIQA AZQEC BBLKV BCGOX BENPR BESQT BGHMG BGLVJ BJBOZ BLZWO BMAJL BPHCQ BQFHP C0O CAG CBIIA CCPQU CCQAD CCTKK CCUQV CDIZJ CFAFE CFBFF CGQII CHEAL CITATION CJCSC COF CS3 D-I DC4 DOHLZ DU5 DWQXO EBS EGQIC EJD GNUQQ HCIFZ HG- HST I.6 I.7 I.9 IH6 IKXGN IOEEP IOO IPYYG IS6 I~P J36 J38 J3A JHPGK JQKCU K6V K7- KAFGG KCGVB KFECR L98 LHUNA LW7 M-V M48 M7~ M8. NIKVX NMFBF NZEOI OK1 OYBOY P2P P62 PHGZM PHGZT PQGLB PQQKQ PROAC PYCCK Q2X RAMDC RCA ROL RR0 S6- S6U SAAAG T9M TWZ UT1 WFFJZ WQ3 WXU WYP YYM ZDLDU ZJOSE ZMEZD ZY4 ZYDXJ ~V1 3V. 7SC 7XB 8AL 8FD 8FK JQ2 L7M L~C L~D M0N PKEHL PQEST PQUKI PRINS Q9U |
| ID | FETCH-LOGICAL-c273t-cb0f0a3dccda8aff84d2a5276763eec4e92a4817b42f5fbb76d0992f172641023 |
| IEDL.DBID | BENPR |
| ISICitedReferencesCount | 4 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000343204600002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0956-7968 |
| IngestDate | Sun Oct 26 23:47:49 EDT 2025 Tue Nov 18 22:33:03 EST 2025 Sat Nov 29 05:36:59 EST 2025 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 4 |
| Language | English |
| License | https://www.cambridge.org/core/terms |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c273t-cb0f0a3dccda8aff84d2a5276763eec4e92a4817b42f5fbb76d0992f172641023 |
| Notes | SourceType-Scholarly Journals-1 ObjectType-Feature-1 content type line 14 |
| PQID | 1561228408 |
| PQPubID | 37264 |
| PageCount | 40 |
| ParticipantIDs | proquest_journals_1561228408 crossref_citationtrail_10_1017_S0956796814000185 crossref_primary_10_1017_S0956796814000185 |
| PublicationCentury | 2000 |
| PublicationDate | 2014-07-01 |
| PublicationDateYYYYMMDD | 2014-07-01 |
| PublicationDate_xml | – month: 07 year: 2014 text: 2014-07-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationPlace | Cambridge |
| PublicationPlace_xml | – name: Cambridge |
| PublicationTitle | Journal of functional programming |
| PublicationYear | 2014 |
| Publisher | Cambridge University Press |
| Publisher_xml | – name: Cambridge University Press |
| References | Frisby (S0956796814000185_ref18) 2012 Wadler (S0956796814000185_ref60) 1992 Klein (S0956796814000185_ref29) 2012 Balland (S0956796814000185_ref2) 2008 S0956796814000185_ref39 Lazar (S0956796814000185_ref32) 2012 Visser (S0956796814000185_ref59) 1998 S0956796814000185_ref36 S0956796814000185_ref37 Culpepper (S0956796814000185_ref8) 2010 Tseitin (S0956796814000185_ref55) 1968; 8 Lämmel (S0956796814000185_ref31) 2002 S0956796814000185_ref20 S0956796814000185_ref21 S0956796814000185_ref22 Löh (S0956796814000185_ref34) 2011 S0956796814000185_ref23 S0956796814000185_ref28 S0956796814000185_ref25 Sulzmann (S0956796814000185_ref53) 2007 S0956796814000185_ref26 Adams (S0956796814000185_ref1) 2014 S0956796814000185_ref6 S0956796814000185_ref10 S0956796814000185_ref7 S0956796814000185_ref54 S0956796814000185_ref9 S0956796814000185_ref56 Kats (S0956796814000185_ref27) 2010 S0956796814000185_ref50 Peyton Jones (S0956796814000185_ref43) 2007 S0956796814000185_ref52 Magalhães (S0956796814000185_ref35) 2010 S0956796814000185_ref13 S0956796814000185_ref57 Wadler (S0956796814000185_ref61) 1989 S0956796814000185_ref58 S0956796814000185_ref15 Sheard (S0956796814000185_ref51) 2002 Liang (S0956796814000185_ref33) 1995 Erdweg (S0956796814000185_ref12) 2011 S0956796814000185_ref42 Erdweg (S0956796814000185_ref14) 2012 S0956796814000185_ref44 Gibbons (S0956796814000185_ref19) 2005 S0956796814000185_ref40 S0956796814000185_ref41 Moors (S0956796814000185_ref38) 2006 S0956796814000185_ref46 Hinze (S0956796814000185_ref24) 2007 S0956796814000185_ref47 S0956796814000185_ref48 S0956796814000185_ref49 Ellison (S0956796814000185_ref11) 2012 Farmer (S0956796814000185_ref16) 2012 Felleisen (S0956796814000185_ref17) 2009 Lämmel (S0956796814000185_ref30) 2003 Reynolds (S0956796814000185_ref45) 1974 S0956796814000185_ref3 S0956796814000185_ref4 S0956796814000185_ref5 |
| References_xml | – start-page: 150 volume-title: International spring school on datatype-generic programming 2006 year: 2007 ident: S0956796814000185_ref24 – ident: S0956796814000185_ref23 – ident: S0956796814000185_ref46 doi: 10.1145/1411286.1411301 – start-page: 235 volume-title: International Conference on Functional Programming year: 2010 ident: S0956796814000185_ref8 – ident: S0956796814000185_ref10 – ident: S0956796814000185_ref9 – start-page: 285 volume-title: Symposium on Principles of Programming Languages year: 2012 ident: S0956796814000185_ref29 – start-page: 327 volume-title: International Conference on Functional Programming year: 2007 ident: S0956796814000185_ref43 – ident: S0956796814000185_ref4 doi: 10.1017/S0956796808006898 – start-page: 26 volume-title: Types in Languages Design and Implementation year: 2003 ident: S0956796814000185_ref30 – ident: S0956796814000185_ref44 doi: 10.1017/S0956796806006034 – start-page: 60 volume-title: Symposium on Principles of Programming Languages year: 1989 ident: S0956796814000185_ref61 – start-page: 1 volume-title: Haskell Workshop year: 2002 ident: S0956796814000185_ref51 – start-page: 1 volume-title: Symposium on Principles of Programming Languages year: 1992 ident: S0956796814000185_ref60 – ident: S0956796814000185_ref49 doi: 10.1007/978-3-642-41582-1_6 – ident: S0956796814000185_ref25 doi: 10.1016/j.scico.2007.10.006 – volume-title: Semantics Engineering with PLT Redex year: 2009 ident: S0956796814000185_ref17 – volume: 8 start-page: 115 volume-title: Structures in Constructive Mathematics and Mathematical Logic, Part II year: 1968 ident: S0956796814000185_ref55 – ident: S0956796814000185_ref21 doi: 10.1007/978-3-642-03034-5_14 – ident: S0956796814000185_ref28 – start-page: 37 volume-title: Haskell Symposium year: 2010 ident: S0956796814000185_ref35 – ident: S0956796814000185_ref37 doi: 10.1145/1291201.1291208 – ident: S0956796814000185_ref36 doi: 10.1017/S0956796807006326 – ident: S0956796814000185_ref6 doi: 10.1145/321992.321996 – start-page: 149 volume-title: Haskell Symposium year: 2012 ident: S0956796814000185_ref14 doi: 10.1145/2364506.2364526 – start-page: 391 volume-title: International Conference on Object-Oriented Programming, Systems, Languages, and Applications year: 2011 ident: S0956796814000185_ref12 – start-page: 1 volume-title: Workshop on Generic Programming year: 2011 ident: S0956796814000185_ref34 – ident: S0956796814000185_ref42 – start-page: 53 volume-title: International Workshop on Types in Language Design and Implementation year: 2007 ident: S0956796814000185_ref53 – ident: S0956796814000185_ref56 doi: 10.1007/978-3-540-25935-0_13 – ident: S0956796814000185_ref48 – start-page: 277 volume-title: Workshop on Declarative Programming in the Context of Object-Oriented Languages 2003 year: 2005 ident: S0956796814000185_ref19 – ident: S0956796814000185_ref50 – ident: S0956796814000185_ref3 doi: 10.1016/j.scico.2007.11.003 – start-page: 333 volume-title: Symposium on Principles of Programming Languages year: 1995 ident: S0956796814000185_ref33 – ident: S0956796814000185_ref26 doi: 10.1016/0020-0190(86)90059-1 – start-page: 13 volume-title: International Conference on Functional Programming year: 1998 ident: S0956796814000185_ref59 – ident: S0956796814000185_ref13 doi: 10.1145/2517208.2517210 – start-page: 1 volume-title: Haskell Symposium year: 2012 ident: S0956796814000185_ref16 – ident: S0956796814000185_ref5 doi: 10.1145/1596638.1596652 – start-page: 71 volume-title: Workshop on Partial Evaluation and Program Manipulation year: 2014 ident: S0956796814000185_ref1 – ident: S0956796814000185_ref54 doi: 10.1017/S0956796808006758 – ident: S0956796814000185_ref39 doi: 10.1017/S0956796810000183 – start-page: 444 volume-title: International Conference on Object-Oriented Programming, Systems, Languages, and Applications year: 2010 ident: S0956796814000185_ref27 doi: 10.1145/1869459.1869497 – ident: S0956796814000185_ref47 – ident: S0956796814000185_ref22 – start-page: 137 volume-title: International Symposium on Practical Aspects of Declarative Programming year: 2002 ident: S0956796814000185_ref31 – start-page: 533 volume-title: Symposium on Principles of Programming Languages year: 2012 ident: S0956796814000185_ref11 – start-page: 408 volume-title: Colloque sur la programmation year: 1974 ident: S0956796814000185_ref45 – ident: S0956796814000185_ref57 doi: 10.1016/j.jsc.2004.12.011 – start-page: 1 volume-title: Workshop on Generic Programming year: 2012 ident: S0956796814000185_ref18 – ident: S0956796814000185_ref20 doi: 10.1145/1159842.1159856 – start-page: 267 volume-title: International symposium on formal methods year: 2012 ident: S0956796814000185_ref32 – ident: S0956796814000185_ref7 doi: 10.1017/S0956796812000275 – ident: S0956796814000185_ref40 – ident: S0956796814000185_ref15 doi: 10.1145/2577080.2577089 – ident: S0956796814000185_ref41 doi: 10.1017/S0956796810000171 – ident: S0956796814000185_ref58 – start-page: 97 volume-title: Eighth International Workshop on Rule Based Programming year: 2008 ident: S0956796814000185_ref2 – ident: S0956796814000185_ref52 doi: 10.1023/A:1010000313106 – start-page: 96 volume-title: Workshop on Generic Programming year: 2006 ident: S0956796814000185_ref38 |
| SSID | ssj0008258 |
| Score | 2.0099993 |
| Snippet | When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual... Abstract When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual... |
| SourceID | proquest crossref |
| SourceType | Aggregation Database Enrichment Source Index Database |
| StartPage | 434 |
| Subtitle | A Haskell-Embedded Strategic Programming Language with Custom Closed Universes |
| Title | The Kansas University rewrite engine |
| URI | https://www.proquest.com/docview/1561228408 |
| Volume | 24 |
| WOSCitedRecordID | wos000343204600002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVAEN databaseName: Cambridge University Press Wholly Gold Open Access Journals customDbUrl: eissn: 1469-7653 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0008258 issn: 0956-7968 databaseCode: IKXGN dateStart: 19910101 isFulltext: true titleUrlDefault: http://journals.cambridge.org/action/login providerName: Cambridge University Press – providerCode: PRVPQU databaseName: Computer Science Database customDbUrl: eissn: 1469-7653 dateEnd: 20241213 omitProxy: false ssIdentifier: ssj0008258 issn: 0956-7968 databaseCode: K7- dateStart: 20010101 isFulltext: true titleUrlDefault: http://search.proquest.com/compscijour providerName: ProQuest – providerCode: PRVPQU databaseName: ProQuest advanced technologies & aerospace journals customDbUrl: eissn: 1469-7653 dateEnd: 20241213 omitProxy: false ssIdentifier: ssj0008258 issn: 0956-7968 databaseCode: P5Z dateStart: 20010101 isFulltext: true titleUrlDefault: https://search.proquest.com/hightechjournals providerName: ProQuest – providerCode: PRVPQU databaseName: ProQuest Central customDbUrl: eissn: 1469-7653 dateEnd: 20241213 omitProxy: false ssIdentifier: ssj0008258 issn: 0956-7968 databaseCode: BENPR dateStart: 20010101 isFulltext: true titleUrlDefault: https://www.proquest.com/central providerName: ProQuest |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1LS8NAEB5s68GL9YnVWnLoSVhM0k12cxKVFqFQiigUL2GzDxCkrUnVv-9ssmkpQi9ecthkQpjMzmNn-D6APtOCWUBqS2iiCDUsI5kfaaKELyXFeiOmFdkEm0z4bJZM3YFb4cYqa59YOmq1kPaM_DawNI7oS31-t_wkljXKdlcdhUYDWhapDO289TCcTJ_XvhjrH16j7bEk5nVfswSNxkW7hiWGpaaLtiPTtmMuo82o_d_vPIJDl2d695VhHMOenp9Au-Zw8NyWPoU-2ok3tpzhhbcZ0vBy_ZPjCz1dwhWeweto-PL4RBxzApGYjqyIzHzji4GSUgkujOFUhSIKWYzeRGtJdRIKygOW0dBEJstYrDBTDA1mM_hvMIyfQ3O-mOsL8AY0RGEe6DhAEakSYTuDmGZlWOhoGXTAr7WWSgcrbtktPtJqfoylfxTdgZu1yLLC1Nj1cLfWc-q2V5FulHy5-_YVHGCGQ6v52i40V_mXvoZ9-b16L_Kes5YeNMaM4HUavf0CBc7E7Q |
| linkProvider | ProQuest |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V1NS8NAEB1KK-jF-onVqjnUixBM0k02OYj40dLSGopU6C1uNhsQpK1Jtfin_I3OJllLEXrrwesmC5vM7JuZ7OQ9gAYVjEpCailoEukkpqEeGrbQI2ZwTrDecEguNkF93x2NvEEJvtW_MLKtUmFiBtTRhMtv5FemlHFELDXcm-m7LlWj5OmqktDI3aInvuZYsqXX3Qe074VltVvD-45eqAroHEP1TOehERusGXEeMZfFsUsii9kWdXCnCcGJ8CxGXJOGxIrtOAypE2EWZcUY6XHdGdEBQn6FNIljl6Fy1_IHT7_Yj_WWq9j9qOe46hw1I6nGQTmGJY2UwrOXI-FyIMiiW7v6397LDmwXebR2mzv-LpTEeA-qSqNCKyBrHxq4D7Se1ERPtUUTipaIeYIPoImMjvEAntey1kMojydjcQRak1g42TWFY-IUHnlMnnxiGhliISe4WQNDWSngBW26VO94C_L-OBr8MWwNLn-nTHPOkFU315VdgwI-0mBh1OPVl89hszN87Af9rt87gS3M5kjeS1yH8iz5EKewwT9nr2lyVniqBi_rdoIfbfkg2Q |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=The+Kansas+University+rewrite+engine&rft.jtitle=Journal+of+functional+programming&rft.au=SCULTHORPE%2C+NEIL&rft.au=FRISBY%2C+NICOLAS&rft.au=GILL%2C+ANDY&rft.date=2014-07-01&rft.pub=Cambridge+University+Press&rft.issn=0956-7968&rft.eissn=1469-7653&rft.volume=24&rft.issue=4&rft.spage=434&rft_id=info:doi/10.1017%2FS0956796814000185&rft.externalDocID=3428562221 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0956-7968&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0956-7968&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0956-7968&client=summon |