In this chat server implementation <a href="http://www.haskell.org/haskellwiki/Implement_a_chat_server">http://www.haskell.org/haskellwiki/Implement_a_chat_server</a><br><br>forkIO is used with fix as in:<br><br clear="all">
<pre class="haskell">    reader <span style="color: rgb(0, 0, 153);">&lt;-</span> forkIO <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:."><span style="color: rgb(0, 102, 0);">$</span></a> fix <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:."><span style="color: rgb(0, 102, 0);">$</span></a> \loop <span style="color: rgb(0, 0, 153);">-&gt;</span> <span style="color: rgb(0, 0, 153);">do</span><br>
        <span style="color: black;">(</span>nr&#39;, line<span style="color: black;">)</span> <span style="color: rgb(0, 0, 153);">&lt;-</span> readChan chan&#39;<br>        when <span style="color: black;">(</span>nr <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:/="><span style="color: rgb(0, 102, 0);">/=</span></a> nr&#39;<span style="color: black;">)</span> <a href="http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:."><span style="color: rgb(0, 102, 0);">$</span></a> hPutStrLn hdl line<br>
        loop<br></pre><br>Do you have to use fix?  Or is there a way to write this with a &quot;let&quot;?<br><br>-- <br>Daryoush<br><br><br>