There is no explicit data structure being mutated. Yes, I/O operations change the state of the I/O stream but that’s inherent to the way they function. It could be viewed the other way but then all I/O operations would end in !
which seems unnecessary.