我正在使用以下类型类:
module T where
class T a where
v :: a
我实现的一个实例T Int
:
import T
import A (av)
instance T Int where
v = 0
main = putStrLn (av ++ show v)
还有一个我想使用其中的值的模块,它也有一个T Int
.
module A where
import T
instance T Int where
v = 0
av = "value from A"
问题是这不起作用:
$ runghc Main.hs
Main.hs:4:9:
Duplicate instance declarations:
instance T Int -- Defined at Main.hs:4:9-13
instance T Int -- Defined at A.hs:3:9-13
Haskell 抱怨同一个实例有 2 个声明。我怎么能告诉他不要从 导入实例B
,或者统一两个实例,或者只使用从 实例Main
?