Я не могу найти никакого объяснения того, какие линзы используются в практических примерах. Этот короткий абзац на странице Hackage является ближайшим, который я нашел:
Эти модули обеспечивают удобный способ доступа и обновления элементов структуры. Он очень похож на Data.Accessors, но немного более общий и имеет меньше зависимостей. Мне особенно нравится, как чисто он обрабатывает вложенные структуры в государственных монадах.
Итак, для чего они используются? Какие преимущества и недостатки они имеют в отношении других методов? Зачем они нужны?