in-other-words插件:在使用其他单词时,消除效果的明显用法的歧义。

[bsd3型,控制语言,图书馆][建议标签]
版本[RSS(RSS)] 0.1.0.0
更改日志 更改日志.md
依赖关系 基础(>=4.9 && <5),集装箱(>=0.5 && <0.7),温室气体(>=8.4.4 && <9),ghc-tc插件(>=0.3 && <0.5),用别人的话(>=0.1 && <0.3),赛博(>=0.7 && <0.8),变压器(>=0.5.2.0 && <0.6)[细节]
许可证 BSD-3条款
版权 2021年Love Waern
作者 洛夫·沃恩
维护人员 combiner8761@gmail.com
类别 控制语言
主页 https://github.com/KingoftheHomeless/in-other-words-plugin#readme
Bug跟踪器 https://github.com/KingoftheHomeles/in-other-words-plugin/issues
源回购 头部:git克隆https://github.com/KingoftheHomeles/in-other-words插件
已上传 通过无家可归者之王2021-01-30T18:28:23Z
分配
反向依赖关系 1直接,0间接[细节]
下载 总共256个(过去30天内有6个)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 可用文档[生成日志]
上次成功报告时间:2021-01-30[所有1个报告]

in-other-words-plugin-0.1.0.0自述文件

[返回包描述]

in-other-words插件

构建GHC 8.6 构建GHC 8.8 构建GHC 8.10

概述

一个typechecker插件,可以在使用时消除效果的“明显”用法的歧义用别人的话.

例子

考虑以下程序:

foo::效率(状态Int)m=>m()foo=放置10

这个程序做什么?任何人都会告诉你它改变了这个国际到10,这显然是什么意思。

不幸的是,用别人的话这件事自己解决不了。其理由是“也许你想换一个效果是号码,但你忘了加一些效率/约束。”

这显然很疯狂,但这就是饼干破碎的方式。in-other-words插件是一个类型检查器插件,可以消除上面的歧义编写程序(和其他程序),以便编译器可以执行您想要的操作。

用法

将以下行添加到包配置中:

ghc选项:-fplugin=控制。效果。插件

限制

in-other-words插件只有在只有一个效果的情况下才能消除歧义范围中的相关约束。例如,它将消除歧义以下程序:

bar::Effs'[状态Int,状态双精度]米=>米()bar=放置10

因为现在还不清楚您是否试图设置国际双精度相反,在这种情况下,您可以手动编写类型应用程序。

bar::Effs的[State Int,状态双精度]米=>米()bar=放置@Int 10

致谢

这个插件和这个README几乎一字不差地从多义插件,它本身几乎是一字不差地从简单效果.