runTCPServer :: TCPServer -> IO TCPServer
runTCPServer serv@TCPServer{..} =
 withSocketsDo $ do
  sock <- listenOn $ PortNumber _port
  ioref <- newIORef 0
  let serv' = serv { _sock = sock, _connections = [], _connected = ioref, _counter = 0 }
  forkIO $ accept' serv'
  return serv'
runTCPServer :: TCPServer -> IO TCPServer
runTCPServer serv@TCPServer{..} =
 withSocketsDo $ do
  sock <- listenOn $ PortNumber _port
  ioref <- newIORef 0
  let serv' = serv { _sock = sock, _connections = [], _connected = ioref, _counter = 0 }
  forkIO $ accept' serv'
  return serv'
runTCPServer serv@TCPServer{..} =
 withSocketsDo $ do
  sock <- listenOn $ PortNumber _port
  ioref <- newIORef 0
  let serv' = serv { _sock = sock, _connections = [], _connected = ioref, _counter = 0 }
  forkIO $ accept' serv'
  return serv'