Suppose that (from the Lens library) I have
fold1 :: Fold s a
fold2 :: Fold s a
and I want to combine these in such a way that
toListOf (combine fold1 fold2) s == toListOf fold1 s ++ toListOf fold2 s
What is the simplest implementation of combine? (It's of course possible just to manually implement it in terms of toListOf, or the like, but I suspect a more purely compositional implementation exists.)