I also recommend the notes for L28[1] - Advanced Functional Programming at Cambridge. They might be a little hard to follow, but they are extremely insightful and teach concepts that may be difficult to learn elsewhere
[1] https://www.cl.cam.ac.uk/teaching/1415/L28/materials.html