使用-XDuplicateRecordFields
,允许以下操作:
{-# LANGUAGE DuplicateRecordFields #-}
module Baz(Foo(..), Bar(..)) where
data Foo = Foo {qux :: Int}
data Bar = Bar {qux :: String}
然而,当Foo
定义在一个名为Foo
的模块中,而Bar
定义在一个名为Bar
的模块中时,我会得到一个编译错误:
{-# LANGUAGE DuplicateRecordFields #-}
module Baz(Foo(..), Bar(..)) where
import Foo (Foo(..))
import Bar (Bar(..))
Conflicting exports for ‘qux’
我认为我正在尝试做的事情相当于第一个示例; 原始定义数据类型的位置不应该有影响。 GHC 8是否支持这种情况?