The Optimal Implementation Of Functional Programming Languages by Andrea Asperti & Stefano Guerrini