Hey John,

I first ran across profunctors in Haskell when learning about [van Laarhoven lenses](https://github.com/ekmett/lens/wiki/History-of-Lenses). These are kinds of data accessors and updaters.

Bartosz Milewski has a nice write up about [profunctors and lenses](https://www.google.com/amp/s/bartoszmilewski.com/2017/07/07/profunctor-optics-the-categorical-view/amp/) on his blog from just last year.