>>28Now that's an implementation detail.
Sure, in the platonic sense every input and output and internal state of your program
exists and are related to each other in intricate ways. Using a computer to explore this space is an implementation detail. Using your brain to do so is an implementation detail. Using pen and paper to do so is an implementation detail. And so on. But in the natural world any implementation is going to need change. Pretending otherwise is an intellectual dead end and doesn't lead to greener pastures.
It's only possible to approximate the ideal world with pure code as long as you have full control over the execution environment. In a distributed environment (read: IO) you don't have full control. The environment mutates around you and you have to deal with it. The ideal world is equally equipped to describe our messy universe as a pretty mathematical formula. There's no value judgement.