Type Error Customization in GHC: Controlling expression-level type errors by type-level programming

A. Serrano, Jurriaan Hage
{"title":"Type Error Customization in GHC: Controlling expression-level type errors by type-level programming","authors":"A. Serrano, Jurriaan Hage","doi":"10.1145/3205368.3205370","DOIUrl":null,"url":null,"abstract":"Embedded domain specific languages (DSLs) are a common pattern in the functional programming world, providing very high-level abstractions to programmer. Unfortunately, this abstraction is broken when type errors occur, leaking details of the DSL implementation. In this paper we present a set of techniques for customizing type error diagnosis in order to avoid this leaking. These techniques have been implemented in the GHC Haskell compiler. Our customizations are declared in the type signatures of functions provided by the DSL, leading to type error message that are context-dependent: the same kind of error can be reported in a different way depending on the particular expression in which it occurs. We make use of the ability to manipulate constraints using type-level programming which is already present in GHC, and which enables reuse and abstraction of common type error patterns.","PeriodicalId":180839,"journal":{"name":"Proceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages","volume":"11 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3205368.3205370","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

Embedded domain specific languages (DSLs) are a common pattern in the functional programming world, providing very high-level abstractions to programmer. Unfortunately, this abstraction is broken when type errors occur, leaking details of the DSL implementation. In this paper we present a set of techniques for customizing type error diagnosis in order to avoid this leaking. These techniques have been implemented in the GHC Haskell compiler. Our customizations are declared in the type signatures of functions provided by the DSL, leading to type error message that are context-dependent: the same kind of error can be reported in a different way depending on the particular expression in which it occurs. We make use of the ability to manipulate constraints using type-level programming which is already present in GHC, and which enables reuse and abstraction of common type error patterns.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
GHC中的类型错误定制:通过类型级编程控制表达式级类型错误
嵌入式领域特定语言(dsl)是函数式编程世界中的一种常见模式,为程序员提供了非常高级的抽象。不幸的是,当发生类型错误时,这种抽象就会被破坏,从而泄露DSL实现的细节。在本文中,我们提出了一套自定义类型错误诊断的技术,以避免这种泄漏。这些技术已经在GHC Haskell编译器中实现了。我们的自定义是在DSL提供的函数的类型签名中声明的,这会导致与上下文相关的类型错误消息:相同类型的错误可以根据其发生的特定表达式以不同的方式报告。我们利用了GHC中已经存在的类型级编程来操纵约束的能力,它支持对常见类型错误模式的重用和抽象。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
The Sky is the Limit: Analysing Resource Consumption Over Time Using Skylines Biorthogonality for a Lazy language Handlers for Non-Monadic Computations A Distributed Dynamic Architecture for Task Oriented Programming Pattern Candidate Discovery and Parallelization Techniques
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1