gpt4 book ai didi

haskell - 导出重复记录字段

转载 作者:行者123 更新时间:2023-12-01 04:49:36 25 4
gpt4 key购买 nike

-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 支持这种东西吗?

最佳答案

我确实发布了一个错误 here .但是,我也无意中发现了一个解决方法:

如果我将编译指示放在 Foo.hs 或 Bar.hs 中,GHC 会接受该程序。也就是说,以下编译:

{-# LANGUAGE DuplicateRecordFields #-}
module Foo(Foo(..)) where
data Foo = Foo {qux::Int}

module Bar(Bar(..)) where
data Bar = Bar {qux::String}

module Baz(Foo(..),Bar(..)) where
import Foo (Foo(..))
import Bar (Bar(..))

关于haskell - 导出重复记录字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42501113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com