This work would have not been possible without:
a- this awesome lesson by Phil Freeman:
- talk -> https://www.youtube.com/watch?v=OJtGECfksds
- Slides -> https://docs.google.com/presentation/d/1jMEqCYwQPW0lkLTk2o1aIkS27HSS5rG8KJaGyCfolos/edit#slide=id.p
b- this magistral implementation in purescript (thanks to all its contibutors):
- https://github.com/purescript-contrib/purescript-profunctor-lenses
- https://github.com/purescript-contrib/purescript-profunctor
Here the main goal is to learn profunctors and its derivatives (Strong, Choice,...) using a simple implementation of optic 'structures' (Lens, Prism, Getter, Fold,...) as a real use case.