我很懒,写了一个Haskell模块(使用优秀的EclipseFP IDE)而没有给我的顶级函数提供类型签名.
EclipseFP使用HLint自动标记每个违规函数,我可以通过4次鼠标点击来修复每个函数.有效,但乏味.
是否有一个实用程序将扫描.hs文件,并发出一个修改版本,为每个顶级函数添加类型签名?
例:
./addTypeSignatures Foo.hs
Run Code Online (Sandbox Code Playgroud)
会读取一个文件Foo.hs:
foo x = foo + a
Run Code Online (Sandbox Code Playgroud)
并发出
foo :: Num a => a -> a
foo x = x + 1
Run Code Online (Sandbox Code Playgroud)
如果工具自动编辑Foo.hs并保存备份,则奖励积分Foo.bak.hs
emacs的haskell-mode具有插入函数类型签名的快捷方式:Cu,Cc,Ct.它不是自动的,您必须为每个功能执行此操作.但是如果你只有一个模块,那么你可能需要花几分钟的时间来完成它.