{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,1]],"date-time":"2025-11-01T06:07:54Z","timestamp":1761977274239,"version":"build-2065373602"},"publisher-location":"Cham","reference-count":40,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783319041315"},{"type":"electronic","value":"9783319041322"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014]]},"DOI":"10.1007\/978-3-319-04132-2_5","type":"book-chapter","created":{"date-parts":[[2013,12,9]],"date-time":"2013-12-09T02:49:14Z","timestamp":1386557354000},"page":"65-80","source":"Crossref","is-referenced-by-count":14,"title":["Sunroof: A Monadic DSL for Generating JavaScript"],"prefix":"10.1007","author":[{"given":"Jan","family":"Bracker","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andy","family":"Gill","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"5_CR1","unstructured":"http:\/\/asmjs.org\/"},{"key":"5_CR2","unstructured":"http:\/\/taskjs.org\/"},{"key":"5_CR3","unstructured":"HTML Living Standard - Timers, http:\/\/www.whatwg.org\/specs\/web-apps\/current-work\/multipage\/timers.html#timers"},{"key":"5_CR4","unstructured":"Apfelmus, H.: (2010), http:\/\/hackage.haskell.org\/package\/operational"},{"key":"5_CR5","first-page":"37","volume":"15","author":"H. Apfelmus","year":"2010","unstructured":"Apfelmus, H.: The Operational Monad Tutorial. The Monad. Reader\u00a015, 37\u201355 (2010)","journal-title":"The Monad. Reader"},{"key":"5_CR6","unstructured":"Ashkenas, J.: CoffeeScript, http:\/\/coffeescript.org\/"},{"key":"5_CR7","unstructured":"Bazerman, G.: JMacro, http:\/\/www.haskell.org\/haskellwiki\/Jmacro"},{"key":"5_CR8","doi-asserted-by":"crossref","unstructured":"Chakravarty, M.M.T., Keller, G., Peyton Jones, S.: Associated type synonyms. In: International Conference on Functional Programming, pp. 241\u2013253. ACM (2005)","DOI":"10.1145\/1090189.1086397"},{"key":"5_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"266","DOI":"10.1007\/978-3-540-74792-5_12","volume-title":"Formal Methods for Components and Objects","author":"E. Cooper","year":"2007","unstructured":"Cooper, E., Lindley, S., Wadler, P., Yallop, J.: Links: Web Programming Without Tiers. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol.\u00a04709, pp. 266\u2013296. Springer, Heidelberg (2007)"},{"key":"5_CR10","doi-asserted-by":"crossref","unstructured":"Dijkstra, A., Stutterheim, J., Vermeulen, A., Swierstra, S.: Building JavaScript applications with Haskell. In: Hinze, R. (ed.) IFL 2012. LNCS, vol.\u00a08241, pp. 37\u201352. Springer, Heidelberg (2013)","DOI":"10.1007\/978-3-642-41582-1_3"},{"issue":"3","key":"5_CR11","doi-asserted-by":"publisher","first-page":"147","DOI":"10.1145\/362929.362947","volume":"11","author":"E.W. Dijkstra","year":"1968","unstructured":"Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Communications of the ACM\u00a011(3), 147\u2013148 (1968)","journal-title":"Communications of the ACM"},{"key":"5_CR12","first-page":"76","volume":"3","author":"L. Domoszlai","year":"2011","unstructured":"Domoszlai, L., Bru\u00ebl, E., Jansen, J.M.: Implementing a non-strict purely functional language in JavaScript. Acta Universitatis Sapientiae\u00a03, 76\u201398 (2011)","journal-title":"Acta Universitatis Sapientiae"},{"key":"5_CR13","unstructured":"Domoszlai, L., Plasmeijer, R.: Compiling Haskell to JavaScript through Clean\u2019s core. In: Selected papers of 9th Joint Conference on Mathematics and Computer Science (February 2012)"},{"key":"5_CR14","unstructured":"Done, C., Bergmark, A.: Fay, https:\/\/github.com\/faylang\/fay\/wiki"},{"key":"5_CR15","unstructured":"Elliott, C.: Boolean, http:\/\/hackage.haskell.org\/package\/Boolean"},{"key":"5_CR16","unstructured":"Farmer, A., Gill, A.: Haskell DSLs for Interactive Web Services. In: First Workshop on Cross-model Language Design and Implementation (2012)"},{"key":"5_CR17","unstructured":"Gill, A.: Sunroof-active, https:\/\/github.com\/ku-fpg\/sunroof-active"},{"key":"5_CR18","doi-asserted-by":"crossref","unstructured":"Gill, A.: Type-Safe Observable Sharing in Haskell. In: Proceedings of the Second ACM SIGPLAN Haskell Symposium, Haskell 2009, pp. 117\u2013128 (September 2009)","DOI":"10.1145\/1596638.1596653"},{"key":"5_CR19","unstructured":"Gill, A.: (2013), http:\/\/hackage.haskell.org\/package\/blank-canvas"},{"key":"5_CR20","unstructured":"Gill, A., Farmer, A.: Kansas Comet, http:\/\/hackage.haskell.org\/package\/kansas-comet"},{"key":"5_CR21","doi-asserted-by":"crossref","unstructured":"Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, vol.\u00a021, pp. 295\u2013308 (1996)","DOI":"10.1145\/237721.237794"},{"key":"5_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"409","DOI":"10.1007\/978-3-642-31057-7_19","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"G. Kossakowski","year":"2012","unstructured":"Kossakowski, G., Amin, N., Rompf, T., Odersky, M.: JavaScript as an Embedded DSL. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol.\u00a07313, pp. 409\u2013434. Springer, Heidelberg (2012)"},{"key":"5_CR23","doi-asserted-by":"crossref","unstructured":"Leijen, D., Meijer, E.: Domain Specific Embedded Compilers. In: Domain-Specific Languages, pp. 109\u2013122. ACM (1999)","DOI":"10.1145\/331963.331977"},{"key":"5_CR24","doi-asserted-by":"crossref","unstructured":"Lin, C.: Programming Monads Operationally with Unimo. In: International Conference on Functional Programming, pp. 274\u2013285. ACM (2006)","DOI":"10.1145\/1160074.1159840"},{"key":"5_CR25","unstructured":"Mahemoff, M.: HTTP Streaming, http:\/\/ajaxpatterns.org\/Comet"},{"key":"5_CR26","doi-asserted-by":"crossref","unstructured":"Mainland, G.: Why It\u2019s Nice to be Quoted: Quasiquoting for Haskell. In: Proceedings of the ACM SIGPLAN Haskell Workshop, Haskell 2007, New York, NY, USA, pp. 73\u201382 (2007)","DOI":"10.1145\/1291201.1291211"},{"key":"5_CR27","doi-asserted-by":"crossref","unstructured":"Moggi, E.: Computational lambda-calculus and monads. In: Logic in Computer Science, pp. 14\u201323. IEEE Press (1989)","DOI":"10.1109\/LICS.1989.39155"},{"key":"5_CR28","unstructured":"Murakami, S., Ashkenas, J.: LiveScript, http:\/\/livescript.net\/"},{"key":"5_CR29","unstructured":"Nazarov, V.: GHCJS Haskell to Javascript Compiler, https:\/\/github.com\/ghcjs\/ghcjs"},{"key":"5_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"85","DOI":"10.1007\/978-3-642-34407-7_6","volume-title":"Implementation and Application of Functional Languages","author":"A. Persson","year":"2012","unstructured":"Persson, A., Axelsson, E., Svenningsson, J.: Generic monadic constructs for embedded languages. In: Gill, A., Hage, J. (eds.) IFL 2011. LNCS, vol.\u00a07257, pp. 85\u201399. Springer, Heidelberg (2012)"},{"key":"5_CR31","unstructured":"Predescu, O.: Model-View-Controller in Cocoon using continuations-based control flow (2002), http:\/\/www.webweavertech.com\/ovidiu\/weblog\/archives\/000042.html"},{"key":"5_CR32","doi-asserted-by":"publisher","first-page":"127","DOI":"10.1145\/1868294.1868314","volume-title":"Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE 2010","author":"T. Rompf","year":"2010","unstructured":"Rompf, T., Odersky, M.: Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs. In: Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE 2010, pp. 127\u2013136. ACM, New York (2010)"},{"key":"5_CR33","doi-asserted-by":"crossref","unstructured":"Finne, S., et al.: Calling hell from heaven and heaven from hell (1999)","DOI":"10.1145\/317636.317790"},{"key":"5_CR34","doi-asserted-by":"crossref","unstructured":"Sculthorpe, N., Bracker, J., Giorgidze, G., Gill, A.: The Constrained-Monad Problem. In: International Conference on Functional Programming, pp. 287\u2013298. ACM (2013)","DOI":"10.1145\/2544174.2500602"},{"key":"5_CR35","doi-asserted-by":"crossref","unstructured":"Shields, M., Peyton Jones, S.: Object-oriented style overloading for Haskell. In: First Workshop on Multi-Language Inferastructure and Interoperability (BABEL 2001), Firenze, Italy (September 2001)","DOI":"10.1016\/S1571-0661(05)80455-4"},{"key":"5_CR36","unstructured":"Stutterheim, J.: Improving the UHC JavaScript backend. Tech. rep., Utrecht University (2012), http:\/\/www.norm2782.com\/improving-uhc-js-report.pdf"},{"key":"5_CR37","doi-asserted-by":"crossref","unstructured":"Svenningsson, J., Svensson, B.J.: Simple and compositional reification of monadic embedded languages. In: International Conference on Functional Programming, pp. 299\u2013304. ACM (2013)","DOI":"10.1145\/2544174.2500611"},{"key":"5_CR38","unstructured":"Yorgey, B.: Active, https:\/\/github.com\/diagrams\/active"},{"key":"5_CR39","unstructured":"Yorgey, B.: Active, https:\/\/github.com\/diagrams"},{"key":"5_CR40","unstructured":"Zakai, A.: Emscripten: An LLVM-to-Javascript Compiler, http:\/\/emscripten.org\/"}],"container-title":["Lecture Notes in Computer Science","Practical Aspects of Declarative Languages"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-04132-2_5","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,5,1]],"date-time":"2025-05-01T03:22:10Z","timestamp":1746069730000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-319-04132-2_5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014]]},"ISBN":["9783319041315","9783319041322"],"references-count":40,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-04132-2_5","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2014]]}}}