考虑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}]]}