To simplify a lot of functions on the data types. Be it accessors, traversals, rewriters.
I guess the functionality of https://hackage.haskell.org/package/uniplate (see their README, functions universe, transform, para, contexts, rewrite etc.) would be applicable in many cases here.
It appears (?) that nowadays people instead use https://hackage-content.haskell.org/package/lens-5.3.5/docs/Control-Lens-Plated.html#g:2 (but the uniplate README is still nice for motivation, since it contains examples of how the different functions might be used).