diff --git a/Assistant/Alert/Utility.hs b/Assistant/Alert/Utility.hs index 960c3385bd..db2ea19250 100644 --- a/Assistant/Alert/Utility.hs +++ b/Assistant/Alert/Utility.hs @@ -13,7 +13,7 @@ import Utility.Tense import qualified Data.Text as T import Data.Text (Text) -import qualified Data.Map.Strict as M +import qualified Data.Map as M {- This is as many alerts as it makes sense to display at a time. - A display might be smaller, or larger, the point is to not overwhelm the @@ -122,7 +122,7 @@ mergeAlert i al m = maybe updatePrune updateCombine (alertCombiner al) let (f, rest) = partition (\(_, a) -> isFiller a) l in drop bloat f ++ rest updatePrune = pruneBloat $ M.filterWithKey pruneSame $ - M.insert i al m + M.insertWith' const i al m updateCombine combiner = let combined = M.mapMaybe (combiner al) m in if M.null combined diff --git a/Assistant/DaemonStatus.hs b/Assistant/DaemonStatus.hs index fc607767bb..b9ad975b07 100644 --- a/Assistant/DaemonStatus.hs +++ b/Assistant/DaemonStatus.hs @@ -25,7 +25,7 @@ import System.Posix.Types import Data.Time.Clock.POSIX import Data.Time import System.Locale -import qualified Data.Map.Strict as M +import qualified Data.Map as M import qualified Data.Text as T getDaemonStatus :: Assistant DaemonStatus @@ -171,7 +171,7 @@ alterTransferInfo t a = updateTransferInfo' $ M.adjust a t - or if already present, updates it while preserving the old transferTid, - transferPaused, and bytesComplete values, which are not written to disk. -} updateTransferInfo :: Transfer -> TransferInfo -> Assistant () -updateTransferInfo t info = updateTransferInfo' $ M.insertWith merge t info +updateTransferInfo t info = updateTransferInfo' $ M.insertWith' merge t info where merge new old = new { transferTid = maybe (transferTid new) Just (transferTid old) diff --git a/Assistant/ScanRemotes.hs b/Assistant/ScanRemotes.hs index 79df2e1231..2743c0f361 100644 --- a/Assistant/ScanRemotes.hs +++ b/Assistant/ScanRemotes.hs @@ -13,7 +13,7 @@ import qualified Types.Remote as Remote import Data.Function import Control.Concurrent.STM -import qualified Data.Map.Strict as M +import qualified Data.Map as M {- Blocks until there is a remote or remotes that need to be scanned. - diff --git a/Assistant/TransferQueue.hs b/Assistant/TransferQueue.hs index 05b0ba73a8..98fb2f06cb 100644 --- a/Assistant/TransferQueue.hs +++ b/Assistant/TransferQueue.hs @@ -34,7 +34,7 @@ import Annex.Wanted import Utility.TList import Control.Concurrent.STM -import qualified Data.Map.Strict as M +import qualified Data.Map as M import qualified Data.Set as S type Reason = String @@ -191,7 +191,7 @@ getNextTransfer acceptable = do if acceptable info then do adjustTransfersSTM dstatus $ - M.insert t info + M.insertWith' const t info return $ Just r else return Nothing