Haskell has been called a "pure functional language."
What does "pure" mean in this context? What consequences does this have for a programmer?