takeEveryNth :: Int -> String -> StateT Int IO Bool
takeEveryNth n = go
  where
    go _ = do
        v <- get
        if (v == 0)
            then put n >> return True
            else put (v - 1) >> return False
takeEveryNth :: Int -> String -> StateT Int IO Bool
takeEveryNth n = go
  where
    go _ = do
        v <- get
        if (v == 0)
            then put n >> return True
            else put (v - 1) >> return False
takeEveryNth n = go
  where
    go _ = do
        v <- get
        if (v == 0)
            then put n >> return True
            else put (v - 1) >> return False