Course notes from Simon Peyton Jones “Lenses: Compositional data access and manipulation”