recv'event'disconnect :: Server -> ID -> IO Server
recv'event'disconnect serv@Server{..} id' = do
 putStrLn $ "recv'event'disconnect: " ++ show id'
 let connections = _connections - 1
 let clients = deleteMaybe id' _clients
 case clients of
  Nothing -> return serv
  (Just clients') -> do
   let serv' = serv { _connections = connections, _clients = clients' }
   return serv'
recv'event'disconnect :: Server -> ID -> IO Server
recv'event'disconnect serv@Server{..} id' = do
 putStrLn $ "recv'event'disconnect: " ++ show id'
 let connections = _connections - 1
 let clients = deleteMaybe id' _clients
 case clients of
  Nothing -> return serv
  (Just clients') -> do
   let serv' = serv { _connections = connections, _clients = clients' }
   return serv'
recv'event'disconnect serv@Server{..} id' = do
 putStrLn $ "recv'event'disconnect: " ++ show id'
 let connections = _connections - 1
 let clients = deleteMaybe id' _clients
 case clients of
  Nothing -> return serv
  (Just clients') -> do
   let serv' = serv { _connections = connections, _clients = clients' }
   return serv'