more elaborate use case test
catch then failing on traversal
expand traversal definition from lens constructor
rewrite traversal as a standalone lens
reorder test cases
set Traversal at the top of the hierarchy
rebuild traversal, without composition
separate lenses and traversals to their own hierarchies
traversal composition with get
traversal composition with modify
naive implementation of filter
filter fails identity law
the identity law doesn't hold for traversals, silly
come up with better identity and rename previous to each
as we can see, each actually obeys this identity
define accept that obeys identity
filter only modifies matching items
rename filter to where
accept also obeys identity for set
add helper for proving identity law