I am still in an imperative way of thinking.&nbsp; In this example here; how would I call &quot;putStrLn&quot; and then set the function with a value.&nbsp; Eg:<br><br>aa :: String -&gt; IO ()<br>aa instr = do<br>&nbsp; putStrLn &quot;abc&quot;
<br>&nbsp; putStrLn &quot;abc&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; return &quot;123&quot;<br><br>--- The error I am getting.<br><br>&nbsp;&nbsp;&nbsp; Couldn&#39;t match expected type `()&#39; against inferred type `[Char]&#39;<br>&nbsp;&nbsp;&nbsp; In the first argument of `return&#39;, namely `&quot;123&quot;&#39;
<br>&nbsp;&nbsp;&nbsp; In the expression: return &quot;123&quot;<br>&nbsp;&nbsp;&nbsp; In the expression:<br>&nbsp;&nbsp;&nbsp; do putStrLn &quot;abc&quot;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; putStrLn &quot;abc&quot;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; return &quot;123&quot;<br>