so, I was looking at the traversy library, which implements lenses
and I wondered how hard it’d be to use core.typed to type-check them
how could you encode a “shape” in a lens type, so that it would only take maps or vectors with that shape, and make it work well when composing lenses?