What I'm arguing is that you can still think and write with an imperative style using the IO monad if you want, so I'm not sure what the issue is.
Edit: As an aside, I already know that "Monad" doesn't mean impure (having implemented an IO monad in my spare time to find out) and that was implied when I said "100% pure functional [...] like Haskell".
They are implemented purely, nonetheless they do allow side-effect (impure) programming.