(PinBoard boardVar) x = liftIO do
  modifyMVar boardVar \board ->
    swap <$> getCom
new :: MonadIO m => m (PinBoard a)
new =
  liftIO (PinBoard <$> newMVar IntMap.empty)
new =
  liftIO (PinBoard <$> newMVar IntMap.empty)