Я хотел бы сделать следующий тест:
it "can rewrite a field from an object" $ do
let _42 = 42 :: Int
nested = object [ "foo" .= _42, "baz" .= object [ "bar" .= _42 ] ]
]
rewrite "bar" nested `shouldBe` object [ "foo" .= _42
, "baz" .= object [ "bar" .= ("XXXXXXXX" :: Text) ]
]
Кажется, мне нужно что-то из Control.Lens.Plated
вроде переписать как или transform, но мне не удается заставить его работать, вероятно, из-за отсутствия глубокого понимания линз.
Мне удалось изменить один слой, используя следующий код, но я хотел бы использовать его для вложенных полей.
rewrite' field value = value & key field %~ const "XXXXXXXX"
\field -> transform (rewrite' field)
то, что вы хотите? (Просто предположение - я тоже не эксперт по объективам) - person user2407038   schedule 22.06.2017