The IO system in every programming language known today is crucial to a computer program's interaction with the outside world. For a long time, Java's approach to programming IO allows the programmer flexibility in interacting with the external systems; Scala, in this language's design, also allows the developer to apply a similar approach. However, when the software starts to dabble in multicore programming (e.g. starting threads to run tasks; these tasks start to execute IO) together with IO, then the situation becomes foggy. The developer should be aware that there is indeed another way to apply a principled approach to developing concurrent code which might or might not interact with IO. This talk will cover examples of how "traditional" multicore + IO code written in Scala can be re-written using another approach via the adaptation of the IO monad (found in the Haskell GHC) for Scala.