Algorithimic Languages And Calculi by Richard Bird, R.S. Bird & L.G.L.T. Meertens