Suppose I have a type lens at _that needs some Maybe a:
import Data.Map as M
m = M.fromList [(1,(2,3))]
--set 2nd element
m ^. at 1 .~ Just (4,5)
--gives fromList [(1,(4,5))]
m ^. at 1 .~ Nothing
--gives fromList ()
Now suppose I want to combine it with another lens. The fact that this lens returns a part Maybe adoes not allow me to do this directly.
m ^. at 1 . _2 .~ Just 4
--error
-- I want to get M.fromList [(1,(2,4))]
What is the right way to do this?
source
share