>>73Lazy by default means Haskell doesn't do any extraneous work which implies its work is as efficient as possible.
Purity means safety as you don't have to reason about the external environment outside of the function. In fact, it is possible to mathematically prove the pure code will be correct for what it does. This is not possible for impure code
Whenever we use unsafePerformIO, we know where is a source of impurity which gives us hints to focus our effort whenever we encounter bugs in our program. We will use it when it's needed, and we don't need it everywhere.
That's just your opinion man.
That's just your opinion man.
That's just your opinion man.
That's just your opinion man.