考虑Foo.hs
:
module Foo where
foo :: Num t => t
foo = 3
在其上运行ghc-mod -type
这样只会为t
的签名提供类型foo
,即使声明已经附加了完整的类型签名:
$ ghc-mod type src/Foo.hs 4 1
4 1 4 8 "t"
当想要使用ghc-mod
将类型添加到没有一个声明的声明时,这变得非常有限。
有没有办法从ghc-mod
获取完整类型?
或者,可以使用哪些工具代替ghc-mod
来实现此目的?这些工具可以与ghc-mod
一起使用(例如在Emacs中)吗?
编辑: stack-ide
也报告类型仅为t
而非完整Num t => t
:
[nil] -> {"tag":"RequestGetExpTypes","contents":{"spanFilePath":"src\/Foo.hs","spanFromLine":4,"spanFromColumn":1,"spanToLine":4,"spanToColumn":4}}
<- {"tag":"ResponseGetExpTypes","contents":[["t",{"spanFromLine":4,"spanFilePath":"src/Foo.hs","spanToColumn":4,"spanFromColumn":1,"spanToLine":4}]]}