``` Try { "x".toInt } // impure because `x.toInt` ...
# functional
r
Copy code
Try { "x".toInt } // impure because `x.toInt` gets evaluated even if `Try` controls exceptions.
IO { "x".toInt } // pure because IO is a pure value and you can defer evaluation until you are ready to evaluate the entire program composition