レコード「ゲッター」をエクスポートする方法はありますが、「セッター」はエクスポートしませんか?
例。私たちが持っていると仮定しますM1.hs
module M1(customCtor, field1) where
data DType = DCtor { field1 :: Int }
customCtor = DCtor { field1 = 1 }
とM2.hs
import M1
modified = customCtor{ field1 = 3 } -- how to prevent this?
main = putStrLn . show . field1 $ modified
M2.hs で getter を実行できるようにfield1
したいのですが、M1 の外部でレコードを更新したくありません。可能であれば、Haskell のドキュメントの関連部分を教えていただけませんか? そうでない場合は、その理由を説明できますか?