{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:34Z","timestamp":1779836734234,"version":"3.53.1"},"reference-count":52,"publisher":"Cambridge University Press (CUP)","issue":"4-5","license":[{"start":{"date-parts":[[2011,6,29]],"date-time":"2011-06-29T00:00:00Z","timestamp":1309305600000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2011,9]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    Arrows are a popular form of abstract computation. Being more general than monads, they are more broadly applicable, and, in particular, are a good abstraction for signal processing and dataflow computations. Most notably, arrows form the basis for a domain-specific language called\n                    <jats:italic>Yampa<\/jats:italic>\n                    , which has been used in a variety of concrete applications, including animation, robotics, sound synthesis, control systems, and graphical user interfaces. Our primary interest is in better understanding the class of abstract computations captured by Yampa. Unfortunately, arrows are not concrete enough to do this with precision. To remedy this situation, we introduce the concept of\n                    <jats:italic>commutative arrows<\/jats:italic>\n                    that capture a noninterference property of concurrent computations. We also add an\n                    <jats:italic>init<\/jats:italic>\n                    operator that captures the causal nature of arrow effects, and identify its associated law. To study this class of computations in more detail, we define an extension to arrows called\n                    <jats:italic>causal commutative arrows<\/jats:italic>\n                    (CCA), and study its properties. Our key contribution is the identification of a normal form for CCA called\n                    <jats:italic>causal commutative normal form<\/jats:italic>\n                    (CCNF). By defining a normalization procedure, we have developed an optimization strategy that yields dramatic improvements in performance over conventional implementations of arrows. We have implemented this technique in Haskell, and conducted benchmarks that validate the effectiveness of our approach. When compiled with the Glasgow Haskell Compiler (GHC), the overall methodology can result in significant speedups.\n                  <\/jats:p>","DOI":"10.1017\/s0956796811000153","type":"journal-article","created":{"date-parts":[[2011,6,29]],"date-time":"2011-06-29T08:44:12Z","timestamp":1309337052000},"page":"467-496","source":"Crossref","is-referenced-by-count":14,"title":["Causal commutative arrows"],"prefix":"10.1017","volume":"21","author":[{"given":"HAI","family":"LIU","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"ERIC","family":"CHENG","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"PAUL","family":"HUDAK","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2011,6,29]]},"reference":[{"key":"S0956796811000153_ref49","first-page":"425","article-title":"Traced monoidal categories","volume":"119","author":"Street","year":"1996","journal-title":"Math. Proc. Camb. Phil. Soc."},{"key":"S0956796811000153_ref36","first-page":"54","volume-title":"Proceedings of International Conference on Functional Programming (ICFP)","author":"Nilsson","year":"2005"},{"key":"S0956796811000153_ref52","volume-title":"LUCID, the Dataflow Programming Language","author":"Wadge","year":"1985"},{"key":"S0956796811000153_ref50","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45937-5_14"},{"key":"S0956796811000153_ref44","unstructured":"Raymond P. (1988) Compilation s\u00e9par\u00e9e de programmes lustre. Master's thesis. IMAG (in French)."},{"key":"S0956796811000153_ref38","first-page":"229","volume-title":"Proceedings of International Conference on Functional Programming (ICFP)","author":"Paterson","year":"2001"},{"key":"S0956796811000153_ref15","first-page":"282","volume-title":"Proceedings","author":"Giorgidze","year":"2008"},{"key":"S0956796811000153_ref25","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00023-4"},{"key":"S0956796811000153_ref30","first-page":"152","volume-title":"Proceedings of the 12th International Symposium on Practical Aspects of Declarative Languages (PADL), Madrid, Spain, January 18\u201319, 2010","author":"Liu","year":"2010"},{"key":"S0956796811000153_ref3","first-page":"174","volume-title":"Proceedings of International Conference on Functional Programming (ICFP)","author":"Bjesse","year":"1998"},{"key":"S0956796811000153_ref29","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2007.10.006"},{"key":"S0956796811000153_ref51","first-page":"135","volume-title":"Central European Functional Programming School (CEFP)","author":"Uustalu","year":"2005"},{"key":"S0956796811000153_ref21","article-title":"Building domain specific embedded languages","volume":"28A","author":"Hudak","year":"1996","journal-title":"ACM Computing Surveys"},{"key":"S0956796811000153_ref10","unstructured":"Courtney A. (2004) Modelling User Interfaces in a Functional Language. PhD thesis, Department of Computer Science, Yale University, New Heaven, CT."},{"key":"S0956796811000153_ref14","first-page":"263","volume-title":"Proceedings of the International Conference on Functional Programming (ICFP)","author":"Elliott","year":"1997"},{"key":"S0956796811000153_ref13","first-page":"315","volume-title":"Proceedings of the International Conference on Functional Programming (ICFP)","author":"Coutts","year":"2007"},{"key":"S0956796811000153_ref32","doi-asserted-by":"crossref","first-page":"1504","DOI":"10.1145\/1403375.1403736","volume-title":"Proceedings of the Conference on Design, Automation and Test in Europe","author":"Lublinerman","year":"2008"},{"key":"S0956796811000153_ref28","doi-asserted-by":"publisher","DOI":"10.1017\/S095679680999027X"},{"key":"S0956796811000153_ref2","unstructured":"Atkey R. (2008) What is a categorical model of arrows? In Proceedings of the Second Workshop on Mathematically Structured Functional Programming. vol. 229 pp. 19\u201337."},{"key":"S0956796811000153_ref31","doi-asserted-by":"crossref","first-page":"78","DOI":"10.1145\/1480881.1480893","volume-title":"Proceedings of the 36th annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"Lublinerman","year":"2009"},{"key":"S0956796811000153_ref24","unstructured":"Hudak P. , Liu H. , Stern M & Agarwal A. 2008 (July). Yampa Meets the Worm. Tech. Rep. YALEU\/DCS\/RR-1408. Yale University, New Heaven, CT. Also see http:\/\/haskell.cs.yale.edu."},{"key":"S0956796811000153_ref9","doi-asserted-by":"publisher","DOI":"10.1145\/1017753.1017792"},{"key":"S0956796811000153_ref5","first-page":"178","volume-title":"Proceedings of the 14th ACM Symposium on Principles of Programming Languages (POPL)","author":"Caspi","year":"1987"},{"key":"S0956796811000153_ref4","first-page":"71","volume-title":"ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation","author":"Burchett","year":"2007"},{"key":"S0956796811000153_ref1","first-page":"163","volume-title":"Conference on Programming Language Design and Implementation","author":"Amagbegnon","year":"1995"},{"key":"S0956796811000153_ref20","first-page":"275","volume-title":"Proceedings of Practical Aspects of Declarative Languages (PADL)","author":"Huang","year":"2007"},{"key":"S0956796811000153_ref33","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796807006326"},{"key":"S0956796811000153_ref12","doi-asserted-by":"crossref","first-page":"7","DOI":"10.1145\/871895.871897","volume-title":"Proceedings of the 2003 ACM SIGPLAN Haskell Workshop","author":"Courtney","year":"2003"},{"key":"S0956796811000153_ref19","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-62688-3_37"},{"key":"S0956796811000153_ref11","first-page":"41","volume-title":"Proceedings of the 2001 ACM SIGPLAN Haskell Workshop","author":"Courtney","year":"2001"},{"key":"S0956796811000153_ref7","volume-title":"Audio Processing and Sound Synthesis in Haskell","author":"Cheng","year":"2009"},{"key":"S0956796811000153_ref48","doi-asserted-by":"publisher","DOI":"10.1007\/s002360050095"},{"key":"S0956796811000153_ref37","unstructured":"Oertel C. 2006 (May). RatTracker: A Functional-Reactive Approach to Flexible Control of Behavioural Conditioning Experiments. PhD thesis, Wilhelm-Schickard-Institute for Computer Science at the University of T\u00fcbingen, T\u00fcbingen, Germany."},{"key":"S0956796811000153_ref46","unstructured":"Sculthorpe N. & Nilsson H. (2008) Optimisation of dynamic, hybrid signal function networks. In Proceedings of the 9th Symposium on Trends in Functional Programming (TFP). Intellect, pp. 97\u2013112."},{"key":"S0956796811000153_ref27","first-page":"273","volume-title":"European Symposium on Programming (ESOP)","author":"Jansson","year":"1999"},{"key":"S0956796811000153_ref34","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1955.tb03788.x"},{"key":"S0956796811000153_ref39","first-page":"1144","volume-title":"International Conference on Robotics and Automation","author":"Peterson","year":"1999"},{"key":"S0956796811000153_ref40","first-page":"91","volume-title":"Proceedings of the First International Workshop on Practical Aspects of Declarative Languages (PADL)","author":"Peterson","year":"1999"},{"key":"S0956796811000153_ref45","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2006.05.030"},{"key":"S0956796811000153_ref6","first-page":"97","volume-title":"Coalgebraic Methods in Computer Science (CMCS)","author":"Caspi","year":"1998"},{"key":"S0956796811000153_ref18","doi-asserted-by":"publisher","DOI":"10.1145\/358886.358892"},{"key":"S0956796811000153_ref47","first-page":"1","volume-title":"Proceedings of the 2002 ACM SIGPLAN Haskell Workshop","author":"Sheard","year":"2002"},{"key":"S0956796811000153_ref8","unstructured":"Cheong M. H. (2005) Functional Programming and 3D Games. M.Phil. thesis, University of New South Wales, Sydney, Australia. Also see http:\/\/www.haskell.org\/haskellwiki\/Frag."},{"key":"S0956796811000153_ref41","first-page":"0","article-title":"The Haskell 98 language and libraries: The revised report","volume":"13","author":"Peyton","year":"2003","journal-title":"J. Funct. Program."},{"key":"S0956796811000153_ref16","doi-asserted-by":"publisher","DOI":"10.2307\/2310304"},{"key":"S0956796811000153_ref22","first-page":"134","volume-title":"Proceedings of Fifth International Conference on Software Reuse","author":"Hudak","year":"1998"},{"key":"S0956796811000153_ref23","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-44833-4_6"},{"key":"S0956796811000153_ref26","first-page":"73","volume-title":"Advanced Functional Programming","author":"Hughes","year":"2004"},{"key":"S0956796811000153_ref35","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(91)90052-4"},{"key":"S0956796811000153_ref43","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48523-6_59"},{"key":"S0956796811000153_ref17","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-54444-5_100"},{"key":"S0956796811000153_ref42","doi-asserted-by":"publisher","DOI":"10.1145\/1629335.1629365"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796811000153","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:36:02Z","timestamp":1779834962000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796811000153\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,6,29]]},"references-count":52,"journal-issue":{"issue":"4-5","published-print":{"date-parts":[[2011,9]]}},"alternative-id":["S0956796811000153"],"URL":"https:\/\/doi.org\/10.1017\/s0956796811000153","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2011,6,29]]}}}