Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The solution for indexed optics used by
lensdoes not work with profunctor optics. Indexed optics are very useful however, even if their index can't be implicitly forgotten like inlens. Here, I experimented with the following compromise:For each profunctor
pthere is a profunctorIndexed p iwith which we can define indexed optics byThis does not compose to the right with
Optics or otherIndexedOptics, but composes to the left withOptics. If one has anIndexedOpticand wishes to compose it to the right with anotherOpticorIndexedOptic, one can useto explicity convert an
IndexedOpticto anOpticby forgetting indices. Despite of a bit of syntactic inconvenience, I reckon that this is a small price to pay. What do you think?On that note, what would be a sensible place to put an
IndexedTraversabletype class like the following in the purescript ecosystem?