Writing travesty boilerplate for containers is fairly tedious; there appears to be a general structure for doing it most of the time, and, as such, I feel like it should be possible to make a PPX extension to at least reduce the amount of boilerplate writing.
The main consideration, of course, is how to tackle:
containers that can be traversed in multiple different ways (not just bi-traversals, but more general issues);
containers where the element to traverse isn't obvious from the type signature (eg most S0s);
containers that can be traversed in a shallow way using one traversal, and in a deeper way by chaining that traversal with another one.
Writing travesty boilerplate for containers is fairly tedious; there appears to be a general structure for doing it most of the time, and, as such, I feel like it should be possible to make a PPX extension to at least reduce the amount of boilerplate writing.
The main consideration, of course, is how to tackle:
S0
s);