"Why s t a b?", a talk about lens by Samuel Gélineau


Details
Optics (a.k.a. lenses) are very popular in the functional programming world, as every major functional language has at least one optics library. An optic is a first-class value representing a relationship between a big type and a smaller type, such as "a list of list of integers contains many integers". This way, we can add or print all those integers in one step, without having to write two nested folds.
This talk introduces the main kinds of optics provided by Haskell's lens library, but also goes deeper into the implementation by explaining how those optics are implemented. The question with which the adventure begins will only make sense if you're already familiar with optics, but here it is anyway: why do most optics list their type parameters in the order `s`, `t`, `a`, then `b`, and not some other order?
Note: We had to cancel the planned talk about system's programming in Rust by Julian Squires, as he had to cancel the talk. Thus, the meetup is pushed to the first Wednesday of February to continue our tradition of holding the meetup in the first Wednesday in the month. Thanks for your understanding

"Why s t a b?", a talk about lens by Samuel Gélineau