自动将类型签名添加到顶级功能

mis*_*bee 14 haskell utility

我很懒,写了一个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

Vag*_*rdi 5

emacs的haskell-mode具有插入函数类型签名的快捷方式:Cu,Cc,Ct.它不是自动的,您必须为每个功能执行此操作.但是如果你只有一个模块,那么你可能需要花几分钟的时间来完成它.