'Haskell Lenses: Difference of two HashSets in Folds

Given:

f1, f2 :: Fold Box (HashSet Thing)

how do I write a fold that focuses the Things that are in f1 but not in f2? It would (of course) be the same Box, but f1 and f2 filter its contents differently.

I can see that filtered and hasn't might come into it and HashSet.difference would do the gruntwork, but I can't quite figure out the plumbing.



Solution 1:[1]

It was a silly question. f1 is just a field of Box but f2 is a filter of f1's contents, and the answer would be the converse filter. It's not meaningful to speak of stuffing the answer back into Box, so I don't really want an optic.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Adrian May