title: Haskell treats multiple lines of code as a single function call
body: <pre><code>pure :: String -&gt; ()
  pure x = unsafePerformIO $ do
    print x
    return ()
  
  pureCall :: String -&gt; IO ()
  pureCall x = do
    pure x
    putStrLn "inside child function"
  </code></pre>
  
  <p>This throws compilation error as,</p>
  
  <pre><code>  The function ‘pure’ is applied to three arguments,
      but its type ‘String -&gt; ()’ has only one
  </code></pre>
  
  <p>I use semicolon as code line seperator in other languages. But not sure, how i can do it in haskell, and run the pureCall function block as two seperate statements!!</p>