我注意到,如果直接导入(或导出)类型类的方法,GHC不会抱怨:
import Prelude (signum)
而不是使用"构造函数"语法:
import Prelude (Num(signum))
因此,我认为前一种语法没问题并且随之而来。但是,我遇到了fromInteger
这个奇怪的问题,前一种语法不起作用 - GHC会默默地接受它,只是后来抱怨fromInteger
从未导出过。我碰巧偶然发现了语言中某些未指明的行为吗?
这是一个最小的测试用例:
-- A.hs
module A (fromInteger) where
import Prelude (fromInteger)
-- B.hs
module B where
import Prelude ()
import A
f = fromInteger