Functional programming and input/output - Gordon, Andrew D. (Cambridge University Press, 1994)