packages feed

polysemy-optics-0.1.0.0: README.md

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.