ANNOUNCE: lens-family 2.0.0 anniversary edition!

In celebration of the 10th anniversary of Twan van Laarhoven's seminal blog post ``CPS based functional references''[1], I am releasing version 2.0 of lens-family[2] and lens-family-core[3] packages. This new release continues to explore the design of Van Laarhoven style optics with new support for adapters, grates, grids[4], and prisms. To bring support to these new optics necessarily means moving a little further away from syntactic compatibility with Kmett's lens library. In particular, lens-family's 'under' is unrelated to Kmett's lens library's 'under' combinator. Nonetheless the 'under' combinator plays a crucial role in lens-family as a dual to the 'over' combinator and this naming is hard to resist despite the conflict. This new version comes with some minor incompatibilities with the version 1.2 library that may require user updates. See https://hackage.haskell.org/package/lens-family-2.0.0/changelog. [1]https://www.twanvl.nl/blog/haskell/cps-functional-references [2]https://hackage.haskell.org/package/lens-family-2.0.0 [3]https://hackage.haskell.org/package/lens-family-core-2.0.0 [4]A grid is an optic that is both a grate and a traversal. -- Russell O'Connor http://r6.ca/

* '_Left' and '_Right' have been renamed as 'lft_' and 'rgt_'.
Why? I fail to see the benefit of such a breaking change.
On Fri, Jul 19, 2019 at 3:53 PM
In celebration of the 10th anniversary of Twan van Laarhoven's seminal blog post ``CPS based functional references''[1], I am releasing version 2.0 of lens-family[2] and lens-family-core[3] packages. This new release continues to explore the design of Van Laarhoven style optics with new support for adapters, grates, grids[4], and prisms.
To bring support to these new optics necessarily means moving a little further away from syntactic compatibility with Kmett's lens library. In particular, lens-family's 'under' is unrelated to Kmett's lens library's 'under' combinator. Nonetheless the 'under' combinator plays a crucial role in lens-family as a dual to the 'over' combinator and this naming is hard to resist despite the conflict.
This new version comes with some minor incompatibilities with the version 1.2 library that may require user updates. See https://hackage.haskell.org/package/lens-family-2.0.0/changelog.
[1]https://www.twanvl.nl/blog/haskell/cps-functional-references [2]https://hackage.haskell.org/package/lens-family-2.0.0 [3]https://hackage.haskell.org/package/lens-family-core-2.0.0 [4]A grid is an optic that is both a grate and a traversal.
-- Russell O'Connor http://r6.ca/ _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.

On Fri, 19 Jul 2019, Oliver Charles wrote:
* '_Left' and '_Right' have been renamed as 'lft_' and 'rgt_'.
Why? I fail to see the benefit of such a breaking change.
I have a new convention that 'foo_' is defined as 'under foo' (or something similar). Naturally, users can stick with the 1.2 release of lens-family if it suits their needs. -- Russell O'Connor http://r6.ca/ ``My friends, love is better than anger. Hope is better than fear. Optimism is better than dispair. So let us be loving, hopeful and optimistic. And we'll change the world.'' -- Jack Layton

Naturally, users can stick with the 1.2 release of lens-family if it suits their needs.
You can not easily have two versions of the same library in your dependency tree. So, only application developers will be able to stick to the 1.2 release without creating obstacles for the rest of the ecosystem. On 19. Jul 2019, 18:04 +0300, roconnor@theorem.ca, wrote:
On Fri, 19 Jul 2019, Oliver Charles wrote:
* '_Left' and '_Right' have been renamed as 'lft_' and 'rgt_'.
Why? I fail to see the benefit of such a breaking change.
I have a new convention that 'foo_' is defined as 'under foo' (or something similar).
Naturally, users can stick with the 1.2 release of lens-family if it suits their needs.
-- Russell O'Connor http://r6.ca/ ``My friends, love is better than anger. Hope is better than fear. Optimism is better than dispair. So let us be loving, hopeful and optimistic. And we'll change the world.'' -- Jack Layton _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

On Fri, 19 Jul 2019, Artyom Kazak wrote:
Naturally, users can stick with the 1.2 release of lens-family if it suits their needs. You can not easily have two versions of the same library in your dependency tree. So, only application developers will be able to stick to the 1.2 release without creating obstacles for the rest of the ecosystem.
I see. I hadn't given that much consideration. In that case, I apologize for the inconvience this upgrade may cause. I'll try to be more mindful of this in the future. -- Russell O'Connor http://r6.ca/ ``My friends, love is better than anger. Hope is better than fear. Optimism is better than dispair. So let us be loving, hopeful and optimistic. And we'll change the world.'' -- Jack Layton

Hey Russell, is there any expository or tech reporty exposition of the
differences in formulation and the why's wherefores of the new major
release? (i'm genuinely curious since i'm quite wimpy in the lens foo)
On Fri, Jul 19, 2019 at 10:53 AM
In celebration of the 10th anniversary of Twan van Laarhoven's seminal blog post ``CPS based functional references''[1], I am releasing version 2.0 of lens-family[2] and lens-family-core[3] packages. This new release continues to explore the design of Van Laarhoven style optics with new support for adapters, grates, grids[4], and prisms.
To bring support to these new optics necessarily means moving a little further away from syntactic compatibility with Kmett's lens library. In particular, lens-family's 'under' is unrelated to Kmett's lens library's 'under' combinator. Nonetheless the 'under' combinator plays a crucial role in lens-family as a dual to the 'over' combinator and this naming is hard to resist despite the conflict.
This new version comes with some minor incompatibilities with the version 1.2 library that may require user updates. See https://hackage.haskell.org/package/lens-family-2.0.0/changelog.
[1]https://www.twanvl.nl/blog/haskell/cps-functional-references [2]https://hackage.haskell.org/package/lens-family-2.0.0 [3]https://hackage.haskell.org/package/lens-family-core-2.0.0 [4]A grid is an optic that is both a grate and a traversal.
-- Russell O'Connor http://r6.ca/ _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
participants (4)
-
Artyom Kazak
-
Carter Schonwald
-
Oliver Charles
-
roconnor@theorem.ca