getRemoteState :: ApiAction (Map Path RemoteFile)
getRemoteState = do
    (mgr, atoken, csrf, mbox) <- ask
    let mboxFolders = (DP.folder . DP.folders) mbox
    contents <- liftIO $ mapConcurrently (\f -> runResourceT $ runReaderT (getFolderContents f) (mgr, atoken, csrf, mbox)) mboxFolders
    inboxContents <- getInboxContents
    let allFolders = Map.unions contents
    return $ Map.union inboxContents allFolders
getRemoteState :: ApiAction (Map Path RemoteFile)
getRemoteState = do
    (mgr, atoken, csrf, mbox) <- ask
    let mboxFolders = (DP.folder . DP.folders) mbox
    contents <- liftIO $ mapConcurrently (\f -> runResourceT $ runReaderT (getFolderContents f) (mgr, atoken, csrf, mbox)) mboxFolders
    inboxContents <- getInboxContents
    let allFolders = Map.unions contents
    return $ Map.union inboxContents allFolders
getRemoteState = do
    (mgr, atoken, csrf, mbox) <- ask
    let mboxFolders = (DP.folder . DP.folders) mbox
    contents <- liftIO $ mapConcurrently (\f -> runResourceT $ runReaderT (getFolderContents f) (mgr, atoken, csrf, mbox)) mboxFolders
    inboxContents <- getInboxContents
    let allFolders = Map.unions contents
    return $ Map.union inboxContents allFolders