我正在尝试使用 DisambiguateRecordFields 来允许我在不同的记录中使用相同的字段名称,但我无法让它工作。例如:
-- 文件 A.hs
{-# LANGUAGE DisambiguateRecordFields #-}
module A where
data ARec = ARec {nID :: Int, sDesc :: String}
-- 文件 B.hs
{-# LANGUAGE DisambiguateRecordFields #-}
module B where
data BRec = BRec {nID :: Int, sProdCode :: String}
-- 文件 Main.hs
{-# LANGUAGE DisambiguateRecordFields #-}
module Main where
import A
import B
zA = ARec 123 "Happy"
zB = BRec 456 "Usually"
main = putStrLn $ "zA's ID is " ++ show (nID zA)
如果我编写上述三个文件并将 Main 加载到 GHCi 中,它会抱怨 nID 上的冲突。我认为这正是 DisambiguateRecordFields 旨在克服的问题。
任何帮助,将不胜感激!
谢谢,伊恩。