Elements of ML programming - Ullman Jeffrey D. (2000)