Agreed; also Traversable in Haskell is a simpler abstraction than lenses and pretty directly addresses what they seem to be looking for: https://hackage.haskell.org/package/base-4.21.0.0/docs/Data-...
[1] https://www.cs.ox.ac.uk/jeremy.gibbons/publications/iterator...