有没有一种方法可以让我从一个使用 lens 的模块中只导出特定的 getter 或 setter?
例如,假设一个数据结构具有不变性,始终为“> = 0”,只能通过递增进行修改,并且只能使用初始值为“0”创建:
例如,假设一个数据结构具有不变性,始终为“> = 0”,只能通过递增进行修改,并且只能使用初始值为“0”创建:
module Something
( Counter
-- export only `count` getter
, make
, increment
) where
data Counter = Counter { _count :: Int } deriving (Eq)
makeLenses ''Positive
make :: Counter
make = Counter 0
increment :: Counter -> Counter
increment c = c ^. count %~ (+1)
我怎样才能只导出 count
getter?