-- | A function which takes a Traversal and pulls out each 
-- element it focuses on in order. The type has been 
-- specialized, as the others, but a more normal type might be
--
-- @_@
-- toListOf :: Traversal s s a a -> (s -> [a])
-- @_@
-- >_> (a -> f a) -> (s -> f s)
toListOf :: Optic (->) (K (Endo [a])) s s a a -> s -> [a]
toListOf f = (`appEndo` []) . getK  . f (K . Endo . (:))
toListOf :: Optic (->) (K (Endo [a])) s s a a -> s -> [a]
toListOf f = (`appEndo` []) . getK  . f (K . Endo . (:))
toListOf f = (`appEndo` []) . getK  . f (K . Endo . (:))