One of my favourite things about Haskell is that its structures and abstractions are very principled, and they have laws dictating correct behaviour. In my experience, this means that when you find a new way to piece together those abstractions it almost always ends up doing something reasonable... or at the very least interesting! As it turns out, optics have a lot of different "slots" where we c