Usa lentes para atualizar registos aninhados (específico de linguagens com dados imutáveis).
Atualizar campos de registos aninhados e imutáveis é um bocado chato. O código para estes casos é tão pesado quanto a estrutura é profunda. Se tiveres, digamos, uma Person, que contém uma Address, que tem uma Street, que tem um Number, atualizar o Number obriga-te a criar uma nova Street com o novo Number, depois uma nova Address com a nova Street e, por fim, uma nova Person com a nova Address. Já estás confuso?
Uma solução para este problema é usar lentes.
Implementa várias funções de acesso a registos usando lentes. O conjunto de testes também te permite não usar lentes, para poderes experimentar abordagens diferentes.
Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.