newid'' :: Monad m => Int -> StateT IdxSet m Idx
newid'' i = do
  curMax <- get
  modify (\max -> (nid i [] max))
  return (curMax !! i)
newid'' :: Monad m => Int -> StateT IdxSet m Idx
newid'' i = do
  curMax <- get
  modify (\max -> (nid i [] max))
  return (curMax !! i)
newid'' i = do
  curMax <- get
  modify (\max -> (nid i [] max))
  return (curMax !! i)