getThreadIds :: IO (Vector Int)
getThreadIds = do
    r <- fmap (^. responseBody) . get $ url latest

    let mtids = do
            json <- decode r

            flip parseMaybe json $ \obj -> do
                (tobj :: Object) <- obj .: "topic_list"
                (tops :: Array) <- tobj .: "topics"

                let f :: Value -> Int
                    f = fromJust . parseMaybe id . withObject "" (.: "id")

                return $ V.map f tops

        tids = maybe V.empty id mtids

    return tids
getThreadIds :: IO (Vector Int)
getThreadIds = do
    r <- fmap (^. responseBody) . get $ url latest

    let mtids = do
            json <- decode r

            flip parseMaybe json $ \obj -> do
                (tobj :: Object) <- obj .: "topic_list"
                (tops :: Array) <- tobj .: "topics"

                let f :: Value -> Int
                    f = fromJust . parseMaybe id . withObject "" (.: "id")

                return $ V.map f tops

        tids = maybe V.empty id mtids

    return tids
getThreadIds = do
    r <- fmap (^. responseBody) . get $ url latest

    let mtids = do
            json <- decode r

            flip parseMaybe json $ \obj -> do
                (tobj :: Object) <- obj .: "topic_list"
                (tops :: Array) <- tobj .: "topics"

                let f :: Value -> Int
                    f = fromJust . parseMaybe id . withObject "" (.: "id")

                return $ V.map f tops

        tids = maybe V.empty id mtids

    return tids