On page 27 it says the following which is misleading:
“In pure functional programming terms, input and output are considered impure, because they are side effects.”
This is not correct, input and output are themselves not impure only the side effects. So this is a bit misleading. A pure function have input and output but with no side effects.