Pure code produces composable units or "gluing smaller components to make larger components",[7] while impure code produces endless repetition and poor abstraction.
Pure code permits higher (much higher) levels of abstraction and is the essence of eliminating repetition. Purity is DRY and more.
Pure code is significantly easier to reason about.
We want fewer bugs, higher abstractions, lesser hindrances to approaching purity, all within a flexible type system. Must we abandon the JVM or legacy Java code?