{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,25]],"date-time":"2025-03-25T16:27:18Z","timestamp":1742920038732,"version":"3.40.3"},"publisher-location":"Cham","reference-count":25,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030577605"},{"type":"electronic","value":"9783030577612"}],"license":[{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2020]]},"DOI":"10.1007\/978-3-030-57761-2_2","type":"book-chapter","created":{"date-parts":[[2020,8,31]],"date-time":"2020-08-31T12:47:58Z","timestamp":1598878078000},"page":"25-46","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["BinderAnn: Automated Reification of Source Annotations for Monadic EDSLs"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1153-2999","authenticated-orcid":false,"given":"Agust\u00edn","family":"Mista","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4338-6316","authenticated-orcid":false,"given":"Alejandro","family":"Russo","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2020,8,18]]},"reference":[{"key":"2_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"94","DOI":"10.1007\/978-3-030-18506-0_5","volume-title":"Trends in Functional Programming","author":"M Algehed","year":"2019","unstructured":"Algehed, M., Jansson, P., Einarsd\u00f3ttir, S.H., Gerdes, A.: Saint: an API-generic type-safe interpreter. In: Pa\u0142ka, M., Myreen, M. (eds.) TFP 2018. LNCS, vol. 11457, pp. 94\u2013113. Springer, Cham (2019). \nhttps:\/\/doi.org\/10.1007\/978-3-030-18506-0_5"},{"key":"2_CR2","unstructured":"Axelsson, E.: Compilation as a typed EDSL-to-EDSL transformation. arXiv preprint \narXiv:1603.08865\n\n (2016)"},{"key":"2_CR3","doi-asserted-by":"crossref","unstructured":"Axelsson, E., et al.: Feldspar: a domain specific language for digital signal processing algorithms. In: Eighth ACM\/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010), pp. 169\u2013178. IEEE (2010)","DOI":"10.1109\/MEMCOD.2010.5558637"},{"key":"2_CR4","unstructured":"Barras, B., et al.: The Coq proof assistant reference manual: version 6.1 (1997)"},{"key":"2_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"300","DOI":"10.1007\/978-3-319-15940-9_7","volume-title":"Central European Functional Programming School","author":"G D\u00e9vai","year":"2015","unstructured":"D\u00e9vai, G., Lesk\u00f3, D., Tejfel, M.: The EDSL\u2019s struggle for their sources. In: Zs\u00f3k, V., Horv\u00e1th, Z., Csat\u00f3, L. (eds.) CEFP 2013. LNCS, vol. 8606, pp. 300\u2013335. Springer, Cham (2015). \nhttps:\/\/doi.org\/10.1007\/978-3-319-15940-9_7"},{"issue":"1","key":"2_CR6","doi-asserted-by":"publisher","first-page":"671","DOI":"10.1145\/2578855.2535856","volume":"49","author":"RA Eisenberg","year":"2014","unstructured":"Eisenberg, R.A., Vytiniotis, D., Peyton Jones, S., Weirich, S.: Closed type families with overlapping equations. ACM SIGPLAN Not. 49(1), 671\u2013683 (2014)","journal-title":"ACM SIGPLAN Not."},{"key":"2_CR7","unstructured":"Ekblad, A.: shellmate: Simple interface for shell scripting in Haskell (2014). \nhttps:\/\/hackage.haskell.org\/package\/shellmate"},{"key":"2_CR8","doi-asserted-by":"crossref","unstructured":"Elliott, T., et al.: Guilt free ivory. In: ACM SIGPLAN Notices, no. 12. ACM (2015)","DOI":"10.1145\/2887747.2804318"},{"key":"2_CR9","unstructured":"Erkok, L.: SBV: SMT based verification: symbolic Haskell theorem prover using SMT solving (2010). \nhttps:\/\/hackage.haskell.org\/package\/sbv"},{"key":"2_CR10","doi-asserted-by":"crossref","unstructured":"Gill, A.: dotgen: A simple interface for building.dot graph files (2008). \nhttps:\/\/hackage.haskell.org\/package\/dotgen","DOI":"10.1145\/1411286"},{"key":"2_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-642-24276-2_1","volume-title":"Implementation and Application of Functional Languages","author":"G Giorgidze","year":"2011","unstructured":"Giorgidze, G., Grust, T., Schreiber, T., Weijers, J.: Haskell boards the ferry. In: Hage, J., Moraz\u00e1n, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 1\u201318. Springer, Heidelberg (2011). \nhttps:\/\/doi.org\/10.1007\/978-3-642-24276-2_1"},{"key":"2_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"138","DOI":"10.1007\/978-3-642-24452-0_8","volume-title":"Implementation and Application of Functional Languages","author":"G Giorgidze","year":"2011","unstructured":"Giorgidze, G., Nilsson, H.: Embedding a functional hybrid modelling language in Haskell. In: Scholz, S.-B., Chitil, O. (eds.) IFL 2008. LNCS, vol. 5836, pp. 138\u2013155. Springer, Heidelberg (2011). \nhttps:\/\/doi.org\/10.1007\/978-3-642-24452-0_8"},{"issue":"2","key":"2_CR13","doi-asserted-by":"publisher","first-page":"109","DOI":"10.1145\/227699.227700","volume":"18","author":"CV Hall","year":"1996","unstructured":"Hall, C.V., Hammond, K., Peyton Jones, S.L., Wadler, P.L.: Type classes in Haskell. ACM Trans. Program. Lang. Syst. (TOPLAS) 18(2), 109\u2013138 (1996)","journal-title":"ACM Trans. Program. Lang. Syst. (TOPLAS)"},{"issue":"4es","key":"2_CR14","doi-asserted-by":"publisher","first-page":"196","DOI":"10.1145\/242224.242477","volume":"28","author":"P Hudak","year":"1996","unstructured":"Hudak, P., et al.: Building domain-specific embedded languages. ACM Comput. Surv. 28(4es), 196 (1996)","journal-title":"ACM Comput. Surv."},{"issue":"1\u20133","key":"2_CR15","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1016\/S0167-6423(97)00029-4","volume":"32","author":"SLP Jones","year":"1998","unstructured":"Jones, S.L.P., Santos, A.M.: A transformation-based optimiser for Haskell. Sci. Comput. Program. 32(1\u20133), 3\u201347 (1998)","journal-title":"Sci. Comput. Program."},{"key":"2_CR16","unstructured":"Jones, S.P., Jones, M., Meijer, E.: Type classes: an exploration of the design space. In: Haskell Workshop, pp. 1\u201316 (1997)"},{"key":"2_CR17","unstructured":"Launchbury, J.: Lazy imperative programming. In: Workshop on State in Programming Languages, Copenhagen, Denmark. ACM (1993)"},{"key":"2_CR18","doi-asserted-by":"crossref","unstructured":"Mainland, G.: Why it\u2019s nice to be quoted: quasiquoting for Haskell. In: Proceedings of the ACM SIGPLAN Workshop on Haskell Workshop, pp. 73\u201382. ACM (2007)","DOI":"10.1145\/1291201.1291211"},{"key":"2_CR19","doi-asserted-by":"publisher","first-page":"67","DOI":"10.1145\/2088456.1863533","volume":"45","author":"G Mainland","year":"2010","unstructured":"Mainland, G., Morrisett, G.: Nikola: embedding compiled GPU functions in Haskell. ACM SIGPLAN Not. 45, 67\u201378 (2010)","journal-title":"ACM SIGPLAN Not."},{"key":"2_CR20","unstructured":"Marlow, S., Jones, S.P., et al.: The Glasgow Haskell compiler (2004)"},{"key":"2_CR21","doi-asserted-by":"crossref","unstructured":"Pickering, M., Wu, N., N\u00e9meth, B.: Working with source plugins. In: Proceedings of the 12th ACM SIGPLAN International Symposium on Haskell. ACM (2019)","DOI":"10.1145\/3331545.3342599"},{"key":"2_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"345","DOI":"10.1007\/978-3-642-16612-9_26","volume-title":"Runtime Verification","author":"L Pike","year":"2010","unstructured":"Pike, L., Goodloe, A., Morisset, R., Niller, S.: Copilot: a hard real-time runtime monitor. In: Barringer, H., et al. (eds.) RV 2010. LNCS, vol. 6418, pp. 345\u2013359. Springer, Heidelberg (2010). \nhttps:\/\/doi.org\/10.1007\/978-3-642-16612-9_26"},{"issue":"12","key":"2_CR23","doi-asserted-by":"publisher","first-page":"60","DOI":"10.1145\/636517.636528","volume":"37","author":"T Sheard","year":"2002","unstructured":"Sheard, T., Jones, S.L.P.: Template meta-programming for Haskell. SIGPLAN Not. 37(12), 60\u201375 (2002)","journal-title":"SIGPLAN Not."},{"key":"2_CR24","volume-title":"Developing Web Applications with Haskell and Yesod","author":"M Snoyman","year":"2012","unstructured":"Snoyman, M.: Developing Web Applications with Haskell and Yesod. O\u2019Reilly Media Inc., Sebastopol (2012)"},{"key":"2_CR25","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"24","DOI":"10.1007\/3-540-59451-5_2","volume-title":"Advanced Functional Programming","author":"P Wadler","year":"1995","unstructured":"Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24\u201352. Springer, Heidelberg (1995). \nhttps:\/\/doi.org\/10.1007\/3-540-59451-5_2"}],"container-title":["Lecture Notes in Computer Science","Trends in Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-57761-2_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,8,31]],"date-time":"2020-08-31T13:10:15Z","timestamp":1598879415000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-57761-2_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030577605","9783030577612"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-57761-2_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2020]]},"assertion":[{"value":"18 August 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TFP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Trends in Functional Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Krakow","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Poland","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2020","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"13 February 2020","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14 February 2020","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"21","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tfp2020","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/tfp2020.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"22","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"11","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"50% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3,21","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3,39","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}