Don't hardcode record names.
Get rid of the Multiple/Single mess and make everything Multiple.
collect is a better name for returning multiple values.
The all-entries lens focuses on the entries of a map.
We can focus on keys, values, and the first and second items of a sequence.
Generalise the first and second lenses to xth.
Use purpose-build zero? predicate for clarity.
State view in terms of collect, which reduces the fns that know how lenses are made.
Tidy the tests.
Refactor some constituent functors.
We can combine n lenses with '+>'.