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)
上記の 3 つのファイルと :load Main を GHCi に書き込むと、nID での衝突が発生します。これこそまさに、DisambiguateRecordFields が克服するために設計されたものだと思いました。
どんな助けでも大歓迎です!
ありがとう、イアン。