В haskell без объективов я могу делать такие вещи, как:
data Item = Item { quantity :: Double, price ::Double }
cost :: Item -> Double
cost = (*) <$> quantity <*> price
Если я использую объективы вместо этого, как я могу сделать эквивалент? Лучшее, что я могу сделать, это
cost = to $ (*) <$> (^. quantity) <*> (^. price)
Есть ли лучший способ? (конечно, я хочу a getter
или эквивалент)