readMovement :: IO Word16 -> Inbound.Header -> IO Inbound.InboundMessage
readMovement readShort header =
  do
    let mover = Inbound.messageRefNumber header
    y <- fromIntegral <$> readShort
    x <- fromIntegral <$> readShort
    let notification = Inbound.MovementNotification { Inbound.x = x, Inbound.y = y, Inbound.userWhoMoved = mover }
    return $ Inbound.MovementMessage notification
readMovement :: IO Word16 -> Inbound.Header -> IO Inbound.InboundMessage
readMovement readShort header =
  do
    let mover = Inbound.messageRefNumber header
    y <- fromIntegral <$> readShort
    x <- fromIntegral <$> readShort
    let notification = Inbound.MovementNotification { Inbound.x = x, Inbound.y = y, Inbound.userWhoMoved = mover }
    return $ Inbound.MovementMessage notification
readMovement readShort header =
  do
    let mover = Inbound.messageRefNumber header
    y <- fromIntegral <$> readShort
    x <- fromIntegral <$> readShort
    let notification = Inbound.MovementNotification { Inbound.x = x, Inbound.y = y, Inbound.userWhoMoved = mover }
    return $ Inbound.MovementMessage notification