I'm trying to learn more about the lens library. I already understand the lenses in the lens-family package and their derivation and also grasp the two type parameter versions of Store, Pretext and Bazaar, but I'm having trouble understanding Control.Lens.Traversal's partsOf, holesOf and singular functions, which are defined with complex types and many auxiliary functions. Can these functions also be expressed in a simpler way for learning?