ML for the working programmer - Paulson, Lawrence C. (Cambridge Univ. Press, 1996)