Skip to content


How do I run code with side effects in Haskell, like printing or reading lines?


There is a special type, IO (), for this kind of general side effects like printing, and these actions can be sequenced using the do syntax:

import qualified Data.Text as T

example = IO ()
example = do
    print "Welcome"
    line <- T.getLine
    let result = someComplexFunction line
    print result