{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:27:25Z","timestamp":1750220845335,"version":"3.41.0"},"reference-count":66,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2019,7,26]],"date-time":"2019-07-26T00:00:00Z","timestamp":1564099200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,7,26]]},"abstract":"<jats:p>We describe our experience teaching an advanced typed functional programming course based around the use of System\u00a0F\u03c9 as a programming language.<\/jats:p>","DOI":"10.1145\/3342713","type":"journal-article","created":{"date-parts":[[2019,7,29]],"date-time":"2019-07-29T20:55:51Z","timestamp":1564433751000},"page":"1-17","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Lambda: the ultimate sublanguage (experience report)"],"prefix":"10.1145","volume":"3","author":[{"given":"Jeremy","family":"Yallop","sequence":"first","affiliation":[{"name":"University of Cambridge, UK"}]},{"given":"Leo","family":"White","sequence":"additional","affiliation":[{"name":"Jane Street, UK"}]}],"member":"320","published-online":{"date-parts":[[2019,7,26]]},"reference":[{"volume-title":"Why Dependent Types Matter. (April","year":"2005","author":"Altenkirch Thorsten","key":"e_1_2_1_1_1"},{"key":"e_1_2_1_2_1","volume-title":"26th International Workshop\/21st Annual Conference of the EACSL, CSL 2012","volume":"16","author":"Atkey Robert","year":"2012"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/581478.581494"},{"volume-title":"Meertens","year":"1998","author":"Bird Richard S.","key":"e_1_2_1_4_1"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796899003366"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009853"},{"volume-title":"Proceedings of ED-MEDIA 94\u2013World Conference on Educational Multimedia and Hypermedia.","year":"1994","author":"Brusilovsky P.","key":"e_1_2_1_7_1"},{"volume-title":"Formal Description of Programming Concepts, based on a seminar organized by IFIP Working Group 2.2 and held near Rio de Janeiro in April 1989 (IFIP State-of-the-Art Reports), Erich J","author":"Cardelli Luca","key":"e_1_2_1_8_1"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796809007205"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-49498-1_6"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.2307\/2266170"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5555\/788018.788825"},{"volume-title":"OCaml Users and Developers Workshop","year":"2015","author":"Dolan Stephen","key":"e_1_2_1_13_1"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364506.2364522"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24836-1_16"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796804005076"},{"key":"e_1_2_1_18_1","volume-title":"7th International Symposium, FLOPS 2004, Nara, Japan, April 7-9, 2004, Proceedings (Lecture Notes in Computer Science), Yukiyoshi Kameyama and Peter J. Stuckey (Eds.)","volume":"2998","author":"Garrigue Jacques","year":"2004"},{"volume-title":"OCaml Meeting. (September","year":"2013","author":"Garrigue Jacques","key":"e_1_2_1_19_1"},{"key":"e_1_2_1_20_1","doi-asserted-by":"crossref","unstructured":"Jacques Garrigue and Jacques Le Normand. 2015. GADTs and Exhaustiveness: Looking for the Impossible See { Yallop and Doligez 2017 } 23\u201335.  Jacques Garrigue and Jacques Le Normand. 2015. GADTs and Exhaustiveness: Looking for the Impossible See { Yallop and Doligez 2017 } 23\u201335.","DOI":"10.4204\/EPTCS.241.2"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1999.2830"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-03542-0_19"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/227699.227700"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/871895.871902"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/169701.169692"},{"volume-title":"Polytypic Functions Over Nested Datatypes. Discrete Mathematics &amp","year":"1999","author":"Hinze Ralf","key":"e_1_2_1_26_1"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800003713"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328475"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/165180.165190"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328408.1328430"},{"volume-title":"The Design and Implementation of BER MetaOCaml","series-title":"Lecture Notes in Computer Science","author":"Kiselyov Oleg","key":"e_1_2_1_31_1"},{"key":"e_1_2_1_32_1","doi-asserted-by":"crossref","unstructured":"Oleg Kiselyov. 2015. Generating Code with Polymorphic let: A Ballad of Value Restriction Copying and Sharing See { Yallop and Doligez 2017 } 1\u201322.  Oleg Kiselyov. 2015. Generating Code with Polymorphic let: A Ballad of Value Restriction Copying and Sharing See { Yallop and Doligez 2017 } 1\u201322.","DOI":"10.4204\/EPTCS.241.1"},{"volume-title":"composable, typed optimizations in the tagless-final style. (August","year":"2016","author":"Kiselyov Oleg","key":"e_1_2_1_33_1"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2006.10.039"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364394.2364402"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503778.2503786"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048237.2048241"},{"volume-title":"An Introduction to Functional Programming Through Lambda Calculus","author":"Michaelson Greg","key":"e_1_2_1_38_1"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/44501.45065"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/319301.319345"},{"volume-title":"Smith","year":"1990","author":"Nordstr\u00f6m Bengt","key":"e_1_2_1_41_1"},{"volume-title":"Purely Functional Data Structures","author":"Okasaki Chris","key":"e_1_2_1_42_1","doi-asserted-by":"crossref","DOI":"10.1017\/CBO9780511530104"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/947680.947687"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006034"},{"volume-title":"Types and programming languages","author":"Pierce Benjamin C.","key":"e_1_2_1_46_1"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628145"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2005.11.044"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796814000264"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088348.1088356"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065021"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190315.1190324"},{"volume-title":"Type Theory and Functional Programming","author":"Thompson Simon","key":"e_1_2_1_53_1"},{"key":"e_1_2_1_54_1","first-page":"7","article-title":"Total Functional Programming","volume":"10","author":"Turner D. A.","year":"2004","journal-title":"Journal of Universal Computer Science"},{"volume-title":"A New Implementation of OCaml Formats based on GADTs. OCaml","year":"2013","author":"Vaugon Beno\u00eet","key":"e_1_2_1_55_1"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2187"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411204.1411246"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0890-5401(03)00141-X"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2699407"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796804005179"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.1994.316068"},{"volume-title":"Proceedings ML Family\/OCaml Users and Developers workshops, ML\/OCaml 2014","year":"2014","author":"White Leo","key":"e_1_2_1_62_1"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01018828"},{"volume-title":"First-Class Subtypes. In Proceedings ML Family \/ OCaml Users and Developers workshops, ML\/OCaml 2017","year":"2017","author":"Yallop Jeremy","key":"e_1_2_1_64_1"},{"key":"e_1_2_1_65_1","volume-title":"Proceedings ML Family \/ OCaml Users and Developers workshops, ML Family\/OCaml 2015","volume":"241","author":"Yallop Jeremy","year":"2017"},{"volume-title":"ACM SIGPLAN Workshop on ML. (September","year":"2010","author":"Yallop Jeremy","key":"e_1_2_1_66_1"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2017.04.002"},{"key":"e_1_2_1_68_1","volume-title":"FLOPS 2014, Kanazawa, Japan, June 4-6, 2014. Proceedings (Lecture Notes in Computer Science), Michael Codish and Eijiro Sumii (Eds.)","volume":"8475","author":"Yallop Jeremy","year":"2014"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3342713","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3342713","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:23:01Z","timestamp":1750202581000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3342713"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,7,26]]},"references-count":66,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2019,7,26]]}},"alternative-id":["10.1145\/3342713"],"URL":"https:\/\/doi.org\/10.1145\/3342713","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2019,7,26]]},"assertion":[{"value":"2019-07-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}