initServer :: Int -> IO Server
initServer maxConn = do
 mv <- newEmptyMVar
 let serv = Server { _mv = mv, _clients = M.empty, _maxConnections = maxConn, _connections = 0, _counter = 0 }
 forkIO $ dispatchLoop serv
 return serv
initServer :: Int -> IO Server
initServer maxConn = do
 mv <- newEmptyMVar
 let serv = Server { _mv = mv, _clients = M.empty, _maxConnections = maxConn, _connections = 0, _counter = 0 }
 forkIO $ dispatchLoop serv
 return serv
initServer maxConn = do
 mv <- newEmptyMVar
 let serv = Server { _mv = mv, _clients = M.empty, _maxConnections = maxConn, _connections = 0, _counter = 0 }
 forkIO $ dispatchLoop serv
 return serv