Esiste un modo per esportare specifici getter xor setter da un modulo con un obiettivo?Esporta solo getter o setter da un modulo
Ad esempio, supponiamo che una struttura di dati che ha un'invariante di essere sempre >= 0
, vengano modificati solo incrementando esso ed essere create solo con un valore iniziale di 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)
come sarei in grado esportare solo il getter count
?