In this chat server implementation http://www.haskell.org/haskellwiki/Implement_a_chat_server

forkIO is used with fix as in:

    reader <- forkIO $ fix $ \loop -> do
(nr', line) <- readChan chan'
when (nr /= nr') $ hPutStrLn hdl line
loop

Do you have to use fix?  Or is there a way to write this with a "let"?

--
Daryoush