{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,13]],"date-time":"2025-12-13T23:06:55Z","timestamp":1765667215974,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":34,"publisher":"ACM","license":[{"start":{"date-parts":[[2017,8,30]],"date-time":"2017-08-30T00:00:00Z","timestamp":1504051200000},"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":[[2017,8,30]]},"DOI":"10.1145\/3205368.3205370","type":"proceedings-article","created":{"date-parts":[[2018,8,14]],"date-time":"2018-08-14T12:09:54Z","timestamp":1534248594000},"page":"1-15","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Type Error Customization in GHC"],"prefix":"10.1145","author":[{"given":"Alejandro","family":"Serrano","sequence":"first","affiliation":[{"name":"Department of Information and Computing Sciences, Utrecht University Utrecht, The Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jurriaan","family":"Hage","sequence":"additional","affiliation":[{"name":"Department of Information and Computing Sciences, Utrecht University Utrecht, The Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,8,30]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"Max Bolingbroke. 2011. Constraint Kinds for GHC. (2011). http:\/\/blog.omega-prime.co.uk\/?p=127 Blog post.  Max Bolingbroke. 2011. Constraint Kinds for GHC. (2011). http:\/\/blog.omega-prime.co.uk\/?p=127 Blog post."},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535863"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/507635.507659"},{"key":"e_1_3_2_1_4_1","volume-title":"TFP 2014","author":"Christiansen David Raymond","year":"2014","unstructured":"David Raymond Christiansen . 2014 . Reflect on Your Mistakes! Lightweight Domain-Specific Error Messages . Presented at TFP 2014 (2014). David Raymond Christiansen. 2014. Reflect on Your Mistakes! Lightweight Domain-Specific Error Messages. Presented at TFP 2014 (2014)."},{"key":"e_1_3_2_1_5_1","unstructured":"Iavor Diatchki. 2015. Custom Type Errors. (2015). Available at https:\/\/ghc.haskell.org\/trac\/ghc\/wiki\/Proposal\/CustomTypeErrors.  Iavor Diatchki. 2015. Custom Type Errors. (2015). Available at https:\/\/ghc.haskell.org\/trac\/ghc\/wiki\/Proposal\/CustomTypeErrors."},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535856"},{"key":"e_1_3_2_1_8_1","volume-title":"18th International Symposium, IFL 2006","volume":"4449","author":"Hage Jurriaan","year":"2006","unstructured":"Jurriaan Hage and Bastiaan Heeren . 2006 . Heuristics for Type Error Discovery and Recovery. In Implementation and Application of Functional Languages , 18th International Symposium, IFL 2006 , Budapest, Hungary , September 4-6, 2006, Revised Selected Papers (Lecture Notes in Computer Science), Zolt\u00e1n Horv\u00e1th, Vikt\u00f3ria Zs\u00f3k, and Andrew Butterfield (Eds.), Vol. 4449 . 199--216. Jurriaan Hage and Bastiaan Heeren. 2006. Heuristics for Type Error Discovery and Recovery. In Implementation and Application of Functional Languages, 18th International Symposium, IFL 2006, Budapest, Hungary, September 4-6, 2006, Revised Selected Papers (Lecture Notes in Computer Science), Zolt\u00e1n Horv\u00e1th, Vikt\u00f3ria Zs\u00f3k, and Andrew Butterfield (Eds.), Vol. 4449. 199--216."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2009.03.021"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-30557-6_19"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/944705.944707"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/871895.871902"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/242224.242477"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1273920.1273924"},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2505341.2505343"},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048237.2048241"},{"key":"e_1_3_2_1_17_1","unstructured":"Simon Marlow et al. 2010. Haskell 2010 Language Report. (2010). https:\/\/www.haskell.org\/onlinereport\/haskell2010\/.  Simon Marlow et al. 2010. Haskell 2010 Language Report. (2010). https:\/\/www.haskell.org\/onlinereport\/haskell2010\/."},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863596"},{"key":"e_1_3_2_1_19_1","unstructured":"Hubert Plociniczak Heather Miller and Martin Odersky. 2014. Improving Human-Compiler Interaction Through Customizable Type Feedback.  Hubert Plociniczak Heather Miller and Martin Odersky. 2014. Improving Human-Compiler Interaction Through Customizable Type Feedback."},{"volume-title":"Advanced Topics in Types and Programming Languages, Benjamin C","author":"Pottier Fran\u00e7ois","key":"e_1_3_2_1_20_1","unstructured":"Fran\u00e7ois Pottier and Didier R\u00e9my . 2005. The Essence of ML Type Inference . In Advanced Topics in Types and Programming Languages, Benjamin C . Pierce (Ed.). MIT Press , Chapter 10, 389--489. http:\/\/cristal.inria.fr\/attapl\/ Fran\u00e7ois Pottier and Didier R\u00e9my. 2005. The Essence of ML Type Inference. In Advanced Topics in Types and Programming Languages, Benjamin C. Pierce (Ed.). MIT Press, Chapter 10, 389--489. http:\/\/cristal.inria.fr\/attapl\/"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2015.04.012"},{"key":"e_1_3_2_1_22_1","unstructured":"Scala Team. 2015. Docs for scala.annotation.implicitNotFound. (2015).  Scala Team. 2015. Docs for scala.annotation.implicitNotFound. (2015)."},{"key":"e_1_3_2_1_24_1","volume-title":"ESOP","author":"Serrano Alejandro","year":"2016","unstructured":"Alejandro Serrano and Jurriaan Hage . 2016 b. Type Error Diagnosis for Embedded DSLs by Two-Stage Specialized Type Rules. In Programming Languages and Systems , ESOP 2016. 672--698. Alejandro Serrano and Jurriaan Hage. 2016b. Type Error Diagnosis for Embedded DSLs by Two-Stage Specialized Type Rules. In Programming Languages and Systems, ESOP 2016. 672--698."},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3018882.3018884"},{"volume-title":"Developing Web Applications with Haskell and Yesod","author":"Snoyman Michael","key":"e_1_3_2_1_26_1","unstructured":"Michael Snoyman . 2012. Developing Web Applications with Haskell and Yesod . O'Reilly Media, Inc. Michael Snoyman. 2012. Developing Web Applications with Haskell and Yesod. O'Reilly Media, Inc."},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/871895.871903"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/11924661_1"},{"key":"e_1_3_2_1_29_1","unstructured":"Swift Team. 2016. Type Checker Design and Implementation. (2016). https:\/\/github.com\/apple\/swift\/blob\/master\/docs\/TypeChecker.rst  Swift Team. 2016. Type Checker Design and Implementation. (2016). https:\/\/github.com\/apple\/swift\/blob\/master\/docs\/TypeChecker.rst"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"crossref","unstructured":"Kanae Tsushima and Kenichi Asai. 2013. An Embedded Type Debugger. 190--206.  Kanae Tsushima and Kenichi Asai. 2013. An Embedded Type Debugger. 190--206.","DOI":"10.1007\/978-3-642-41582-1_12"},{"key":"e_1_3_2_1_31_1","unstructured":"Markus Voelter. 2013. DSL Engineering - Designing Implementing and Using Domain-Specific Languages.  Markus Voelter. 2013. DSL Engineering - Designing Implementing and Using Domain-Specific Languages."},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796811000098"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364506.2364520"},{"key":"e_1_3_2_1_35_1","unstructured":"Brent A. Yorgey. 2016. User manual for diagrams. (2016).  Brent A. Yorgey. 2016. User manual for diagrams. (2016)."},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103786.2103795"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2738009"}],"event":{"name":"IFL 2017: 29th Symposium on the Implementation and Application of Functional Programming Languages","sponsor":["ACM Association for Computing Machinery","The University of Bristol The University of Bristol","ERLANG Erlang Solutions Ltd."],"location":"Bristol United Kingdom","acronym":"IFL 2017"},"container-title":["Proceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3205368.3205370","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3205368.3205370","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:08:55Z","timestamp":1750208935000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3205368.3205370"}},"subtitle":["Controlling expression-level type errors by type-level programming"],"short-title":[],"issued":{"date-parts":[[2017,8,30]]},"references-count":34,"alternative-id":["10.1145\/3205368.3205370","10.1145\/3205368"],"URL":"https:\/\/doi.org\/10.1145\/3205368.3205370","relation":{},"subject":[],"published":{"date-parts":[[2017,8,30]]},"assertion":[{"value":"2017-08-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}