Usage ===== Simply import `Optics.Polysemy`. This serves as a drop-in replacement for `Optics`, `Optics.State`, and `Optics.State.Operators`. Caveats ======= As best I can tell, the `zoom` functions cannot currently be translated with complete precision. As a result, only a few `zoom` functions are present here, and they behave a little strangely. * If you use `zoom` or `zoomMaybe` to go from `State s` to `State a`, the original `State s` will still be present in your effect stack. Writes to the zoomed part of the `s` will be visible from inside the `State a`, and vice-versa. * `zoomMany` cannot be sensibly implemented this way, so I have left it out. * Due to difficulties with higher-order effects, I have not yet found a way to implement the `magnify` functions.