IO Monad Separating pure/impure parts of the code Behaves better than future Works with functional patterns Better control of execution Some useful methods