{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:25:02Z","timestamp":1750220702606,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":37,"publisher":"ACM","license":[{"start":{"date-parts":[[2019,10,20]],"date-time":"2019-10-20T00:00:00Z","timestamp":1571529600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2019,10,20]]},"DOI":"10.1145\/3357766.3359545","type":"proceedings-article","created":{"date-parts":[[2019,10,10]],"date-time":"2019-10-10T18:52:21Z","timestamp":1570733541000},"page":"184-196","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Developing a monadic type checker for an object-oriented language: an experience report"],"prefix":"10.1145","author":[{"given":"Elias","family":"Castegren","sequence":"first","affiliation":[{"name":"KTH, Sweden"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kiko","family":"Fernandez-Reyes","sequence":"additional","affiliation":[{"name":"Uppsala University, Sweden"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,10,20]]},"reference":[{"key":"e_1_3_2_2_1_1","unstructured":"2019. The F# Compiler. https:\/\/github.com\/fsharp\/fsharp. GitHub repository.  2019. The F# Compiler. https:\/\/github.com\/fsharp\/fsharp. GitHub repository."},{"key":"e_1_3_2_2_2_1","unstructured":"2019. The Glasgow Haskell Compiler. https:\/\/www.haskell.org\/ghc.  2019. The Glasgow Haskell Compiler. https:\/\/www.haskell.org\/ghc."},{"key":"e_1_3_2_2_3_1","unstructured":"2019. The Java Compiler. https:\/\/openjdk.java.net\/groups\/compiler\/.  2019. The Java Compiler. https:\/\/openjdk.java.net\/groups\/compiler\/."},{"key":"e_1_3_2_2_4_1","unstructured":"2019. Mirror of official clang repository. https:\/\/github.com\/llvm-mirror\/clang.  2019. Mirror of official clang repository. https:\/\/github.com\/llvm-mirror\/clang."},{"key":"e_1_3_2_2_5_1","unstructured":"2019. The OCaml Compiler. https:\/\/github.com\/ocaml\/ocaml. GitHub repository.  2019. The OCaml Compiler. https:\/\/github.com\/ocaml\/ocaml. GitHub repository."},{"key":"e_1_3_2_2_6_1","unstructured":"2019. The Scala Compiler. https:\/\/github.com\/scala\/scala. GitHub repository.  2019. The Scala Compiler. https:\/\/github.com\/scala\/scala. GitHub repository."},{"key":"e_1_3_2_2_7_1","first-page":"1015","volume-title":"OOPSLA 2009","author":"Aldrich Jonathan","year":"2009","unstructured":"Jonathan Aldrich , Joshua Sunshine , Darpan Saini , and Zachary Sparks . 2009 . Typestate-oriented programming. In Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications , OOPSLA 2009 , October 25-29, 2009, Orlando, Florida, USA, Shail Arora and Gary T. Leavens (Eds.). ACM , 1015 - 1022 . Jonathan Aldrich, Joshua Sunshine, Darpan Saini, and Zachary Sparks. 2009. Typestate-oriented programming. In Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA, Shail Arora and Gary T. Leavens (Eds.). ACM, 1015-1022."},{"key":"e_1_3_2_2_8_1","first-page":"1","article-title":"Use-once","volume":"30","author":"Baker Henry G.","year":"1995","unstructured":"Henry G. Baker . 1995 . \" Use-once \" Variables and Linear Objects: Storage Management, Reflection and Multi-threading. SIGPLAN Not. 30 , 1 (Jan. 1995), 45-52. Henry G. Baker. 1995. \"Use-once\" Variables and Linear Objects: Storage Management, Reflection and Multi-threading. SIGPLAN Not. 30, 1 (Jan. 1995), 45-52.","journal-title":"SIGPLAN Not."},{"key":"e_1_3_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286957"},{"key":"e_1_3_2_2_10_1","doi-asserted-by":"crossref","unstructured":"Stephan Brandauer et al. 2015. Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore. In Formal Methods for Multicore Programming - SFM 2015.  Stephan Brandauer et al. 2015. Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore. In Formal Methods for Multicore Programming - SFM 2015 .","DOI":"10.1007\/978-3-319-18941-3_1"},{"key":"e_1_3_2_2_11_1","first-page":"750","volume-title":"International Conference TACS '91, Sendai, Japan, September 24-27, 1991, Proceedings (Lecture Notes in Computer Science), Takayasu Ito and Albert R. Meyer (Eds.)","volume":"526","author":"Cardelli Luca","year":"1991","unstructured":"Luca Cardelli , Simone Martini , John C. Mitchell , and Andre Scedrov . 1991 . An Extension of System F with Subtyping. In Theoretical Aspects of Computer Software , International Conference TACS '91, Sendai, Japan, September 24-27, 1991, Proceedings (Lecture Notes in Computer Science), Takayasu Ito and Albert R. Meyer (Eds.) , Vol. 526 . Springer , 750 - 770 . Luca Cardelli, Simone Martini, John C. Mitchell, and Andre Scedrov. 1991. An Extension of System F with Subtyping. In Theoretical Aspects of Computer Software, International Conference TACS '91, Sendai, Japan, September 24-27, 1991, Proceedings (Lecture Notes in Computer Science), Takayasu Ito and Albert R. Meyer (Eds.), Vol. 526. Springer, 750-770."},{"key":"e_1_3_2_2_12_1","volume-title":"Reference Capabilities for Concurrency Control. In 30th European Conference on Object-Oriented Programming, ECOOP","author":"Castegren Elias","year":"2016","unstructured":"Elias Castegren and Tobias Wrigstad . 2016 . Reference Capabilities for Concurrency Control. In 30th European Conference on Object-Oriented Programming, ECOOP 2016. Elias Castegren and Tobias Wrigstad. 2016. Reference Capabilities for Concurrency Control. In 30th European Conference on Object-Oriented Programming, ECOOP 2016."},{"key":"e_1_3_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2824815.2824816"},{"key":"e_1_3_2_2_14_1","first-page":"151","volume-title":"Proceedings (Lecture Notes in Computer Science), J. W. de Bakker, Willem P. de Roever, and Grzegorz Rozenberg (Eds.)","volume":"489","author":"Cook William R.","year":"1990","unstructured":"William R. Cook . 1990 . Object-Oriented Programming Versus Abstract Data Types. In Foundations of Object-Oriented Languages, REX School\/Workshop , Proceedings (Lecture Notes in Computer Science), J. W. de Bakker, Willem P. de Roever, and Grzegorz Rozenberg (Eds.) , Vol. 489 . Springer , 151 - 178 . William R. Cook. 1990. Object-Oriented Programming Versus Abstract Data Types. In Foundations of Object-Oriented Languages, REX School\/Workshop, Proceedings (Lecture Notes in Computer Science), J. W. de Bakker, Willem P. de Roever, and Grzegorz Rozenberg (Eds.), Vol. 489. Springer, 151-178."},{"key":"e_1_3_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462161"},{"key":"e_1_3_2_2_16_1","volume-title":"d. S. Oliveira and William R. Cook","author":"Bruno","year":"2012","unstructured":"Bruno C. d. S. Oliveira and William R. Cook . 2012 . Extensibility for the Masses - Practical Extensibility with Object Algebras. In ECOOP 2012 - Object-Oriented Programming - 26th European Conference, Beijing, China, June 11-16, 2012. Proceedings (Lecture Notes in Computer Science), James Noble (Ed.), Vol. 7313 . Springer , 2-27. Bruno C. d. S. Oliveira and William R. Cook. 2012. Extensibility for the Masses - Practical Extensibility with Object Algebras. In ECOOP 2012 - Object-Oriented Programming - 26th European Conference, Beijing, China, June 11-16, 2012. Proceedings (Lecture Notes in Computer Science), James Noble (Ed.), Vol. 7313. Springer, 2-27."},{"key":"e_1_3_2_2_17_1","volume-title":"Scandinavian style. ON MECHANISMS FOR SPECIALIZATION","author":"Ernst Erik","year":"2004","unstructured":"Erik Ernst . 2004. The expression problem , Scandinavian style. ON MECHANISMS FOR SPECIALIZATION ( 2004 ), 27. Erik Ernst. 2004. The expression problem, Scandinavian style. ON MECHANISMS FOR SPECIALIZATION (2004), 27."},{"key":"e_1_3_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006046"},{"key":"e_1_3_2_2_19_1","unstructured":"Phil Freeman. 2017. PureScript by Example.  Phil Freeman. 2017. PureScript by Example."},{"key":"e_1_3_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2629609"},{"key":"e_1_3_2_2_21_1","doi-asserted-by":"crossref","unstructured":"Mark P. Jones. 1995. Functional Programming with Overloading and Higher-Order Polymorphism. In Advanced Functional Programming First International Spring School on Advanced Functional Programming Techniques Tutorial Text.   Mark P. Jones. 1995. Functional Programming with Overloading and Higher-Order Polymorphism. In Advanced Functional Programming First International Spring School on Advanced Functional Programming Techniques Tutorial Text .","DOI":"10.1007\/3-540-59451-5_4"},{"key":"e_1_3_2_2_22_1","volume-title":"Monad Transformers and Modular Interpreters. In 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL","author":"Liang Sheng","year":"1995","unstructured":"Sheng Liang , Paul Hudak , and Mark P. Jones . 1995 . Monad Transformers and Modular Interpreters. In 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL 1995 . Sheng Liang, Paul Hudak, and Mark P. Jones. 1995. Monad Transformers and Modular Interpreters. In 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL 1995."},{"key":"e_1_3_2_2_23_1","unstructured":"Simon Marlow et al. 2010. Haskell 2010 language report. Available online http:\/\/www.haskell.org\/(August 2019) (2010).  Simon Marlow et al. 2010. Haskell 2010 language report. Available online http:\/\/www.haskell.org\/(August 2019) (2010)."},{"key":"e_1_3_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2976002.2976007"},{"key":"e_1_3_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1159803.1159811"},{"volume-title":"Types and programming languages","author":"Pierce Benjamin C.","key":"e_1_3_2_2_26_1","unstructured":"Benjamin C. Pierce . 2002. Types and programming languages . MIT Press . Benjamin C. Pierce. 2002. Types and programming languages. MIT Press."},{"key":"e_1_3_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/345099.345100"},{"key":"e_1_3_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/345099.345100"},{"key":"e_1_3_2_2_29_1","unstructured":"JC Reynolds. 1994. User-defined types and procedural data as complementary approaches to data abstraction. Theoretical Aspects of Object-Oriented Programming.  JC Reynolds. 1994. User-defined types and procedural data as complementary approaches to data abstraction. Theoretical Aspects of Object-Oriented Programming."},{"key":"e_1_3_2_2_30_1","volume-title":"The Rust Programming Language. https:\/\/www.rust-lang.org. Accessed","author":"Rust Programming","year":"2019","unstructured":"Rust Programming Language [n.d.]. The Rust Programming Language. https:\/\/www.rust-lang.org. Accessed June 2019 . Rust Programming Language [n.d.]. The Rust Programming Language. https:\/\/www.rust-lang.org. Accessed June 2019."},{"key":"e_1_3_2_2_31_1","volume-title":"Black","author":"Sch\u00e4rli Nathanael","year":"2003","unstructured":"Nathanael Sch\u00e4rli , St\u00e9phane Ducasse , Oscar Nierstrasz , and Andrew P . Black . 2003 . Traits : Composable Units of Behaviour. In ECOOP 2003. Springer Berlin Heidelberg . Nathanael Sch\u00e4rli, St\u00e9phane Ducasse, Oscar Nierstrasz, and Andrew P. Black. 2003. Traits: Composable Units of Behaviour. In ECOOP 2003. Springer Berlin Heidelberg."},{"key":"e_1_3_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796808006758"},{"key":"e_1_3_2_2_33_1","first-page":"123","volume-title":"The Expression Problem Revisited. In ECOOP 2004 - Object-Oriented Programming, 18th European Conference (Lecture Notes in Computer Science), Martin Odersky (Ed.)","volume":"3086","author":"Torgersen Mads","year":"2004","unstructured":"Mads Torgersen . 2004 . The Expression Problem Revisited. In ECOOP 2004 - Object-Oriented Programming, 18th European Conference (Lecture Notes in Computer Science), Martin Odersky (Ed.) , Vol. 3086 . Springer , 123 - 143 . Mads Torgersen. 2004. The Expression Problem Revisited. In ECOOP 2004 - Object-Oriented Programming, 18th European Conference (Lecture Notes in Computer Science), Martin Odersky (Ed.), Vol. 3086. Springer, 123-143."},{"key":"e_1_3_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796811000098"},{"key":"e_1_3_2_2_35_1","volume-title":"Proceedings of the NATO Advanced Study Institute on Program Design Calculi.","author":"Wadler Philip","year":"1992","unstructured":"Philip Wadler . 1992 . Monads for functional programming. In Program Design Calculi , Proceedings of the NATO Advanced Study Institute on Program Design Calculi. Philip Wadler. 1992. Monads for functional programming. In Program Design Calculi, Proceedings of the NATO Advanced Study Institute on Program Design Calculi."},{"key":"e_1_3_2_2_36_1","unstructured":"Philip Wadler. 1998. The expression problem. Posted on the Java Genericity mailing list.  Philip Wadler. 1998. The expression problem. Posted on the Java Genericity mailing list."},{"key":"e_1_3_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75283"}],"event":{"name":"SLE '19: 12th ACM SIGPLAN International Conference on Software Language Engineering","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"],"location":"Athens Greece","acronym":"SLE '19"},"container-title":["Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3357766.3359545","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3357766.3359545","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:32:57Z","timestamp":1750199577000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3357766.3359545"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,20]]},"references-count":37,"alternative-id":["10.1145\/3357766.3359545","10.1145\/3357766"],"URL":"https:\/\/doi.org\/10.1145\/3357766.3359545","relation":{},"subject":[],"published":{"date-parts":[[2019,10,20]]},"assertion":[{"value":"2019-10-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}