Purely functional data structures - Okasaki, Chris (Cambridge University, 1999)