有没有办法导出记录“getter”而不是“setter”?
例子。假设我们有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
我希望能够field1
在 M2.hs 中运行 getter,但不能在 M1 之外更新记录。如果可能的话,你能指出我Haskell文档的相关部分吗?如果不是,你能解释为什么吗?