`record` uses lenses because, as he notes, they already solve the modification part of the record problem. Why don't you?