Skip to content

Commit fe5508a

Browse files
authored
Merge pull request #4675 from input-output-hk/jordan/remove-data-map-usage
Replace Data.Map with Data.Map.Strict
2 parents 63e5a49 + 6194bca commit fe5508a

File tree

29 files changed

+101
-103
lines changed

29 files changed

+101
-103
lines changed

STYLE.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,8 @@ Unqualified types (i.e. `Map` vs. `M.Map`) look pretty good and not so ugly.
266266
Prefer two-line imports for such standard containers.
267267

268268
```haskell
269-
import Data.Map (Map)
270-
import qualified Data.Map as Map
269+
import Data.Map.Strict (Map)
270+
import qualified Data.Map.Strict as Map
271271
```
272272

273273
### Data Declarations

bench/locli/src/Cardano/Unlog/LogObject.hs

+22-22
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@
1010

1111
module Cardano.Unlog.LogObject (module Cardano.Unlog.LogObject) where
1212

13-
import Prelude (head, id, show, unzip3)
14-
import Cardano.Prelude hiding (Text, head, show)
15-
16-
import Control.Monad (fail)
17-
import Data.Aeson qualified as AE
18-
import Data.Aeson.KeyMap qualified as KeyMap
19-
import Data.Aeson.Types (Parser)
20-
import Data.Aeson.Key qualified as Aeson
21-
import Data.ByteString.Lazy qualified as LBS
22-
import Data.Text qualified as LText
23-
import Data.Text.Short qualified as Text
24-
import Data.Text.Short (ShortText, fromText, toText)
25-
import Data.Map qualified as Map
26-
import Data.Vector (Vector)
27-
import Data.Vector qualified as V
28-
29-
import Cardano.Logging.Resources.Types
30-
31-
import Cardano.Analysis.API.Ground
32-
import Cardano.Util
33-
34-
import Data.Accum (zeroUTCTime)
13+
import Cardano.Prelude hiding (Text, head, show)
14+
import Prelude (head, id, show, unzip3)
15+
16+
import Control.Monad (fail)
17+
import qualified Data.Aeson as AE
18+
import qualified Data.Aeson.Key as Aeson
19+
import qualified Data.Aeson.KeyMap as KeyMap
20+
import Data.Aeson.Types (Parser)
21+
import qualified Data.ByteString.Lazy as LBS
22+
import qualified Data.Map.Strict as Map
23+
import qualified Data.Text as LText
24+
import Data.Text.Short (ShortText, fromText, toText)
25+
import qualified Data.Text.Short as Text
26+
import Data.Vector (Vector)
27+
import qualified Data.Vector as V
28+
29+
import Cardano.Logging.Resources.Types
30+
31+
import Cardano.Analysis.API.Ground
32+
import Cardano.Util
33+
34+
import Data.Accum (zeroUTCTime)
3535

3636

3737
type Text = ShortText

bench/trace-analyzer/src/Cardano/Tracer/Analyze/Process.hs

+9-9
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ module Cardano.Tracer.Analyze.Process
55
, extractNamespace
66
) where
77

8-
import Cardano.Tracer.Analyze.Types (FileDBM (..), LineNumber)
8+
import Cardano.Tracer.Analyze.Types (FileDBM (..), LineNumber)
99

10-
import qualified Data.Aeson as AE
11-
import qualified Data.Aeson.KeyMap as AE
10+
import qualified Data.Aeson as AE
11+
import qualified Data.Aeson.KeyMap as AE
1212
import qualified Data.Attoparsec.ByteString.Char8 as Atto
13-
import qualified Data.ByteString.Char8 as BS
14-
import Data.Either (partitionEithers)
15-
import Data.Foldable (foldl')
16-
import qualified Data.Map as Map
17-
import qualified Data.Text as Txt
18-
import qualified Data.Vector as V
13+
import qualified Data.ByteString.Char8 as BS
14+
import Data.Either (partitionEithers)
15+
import Data.Foldable (foldl')
16+
import qualified Data.Map.Strict as Map
17+
import qualified Data.Text as Txt
18+
import qualified Data.Vector as V
1919

2020
parseAndPreprocess :: FilePath -> IO FileDBM
2121
parseAndPreprocess fp = do

bench/trace-analyzer/src/Cardano/Tracer/Analyze/Report.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Control.Monad (when)
88
import qualified Data.Aeson as AE
99
import Data.ByteString.Lazy (toStrict)
1010
import Data.List (nub, (\\))
11-
import qualified Data.Map as Map
11+
import qualified Data.Map.Strict as Map
1212
import Data.Text (Text, drop, isPrefixOf, unpack)
1313
import Data.Text.Encoding (decodeUtf8)
1414

bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Codec.Serialise (DeserialiseFailure)
1717
import Control.Concurrent.Class.MonadSTM.Strict (newTVarIO)
1818
import Control.Monad.Class.MonadTimer (MonadTimer, threadDelay)
1919
import Data.ByteString.Lazy (ByteString)
20-
import qualified Data.Map as Map
20+
import qualified Data.Map.Strict as Map
2121
import Data.Proxy (Proxy (..))
2222
import Network.Socket (AddrInfo (..))
2323
import System.Random (newStdGen)

bench/tx-generator/src/Cardano/Benchmarking/PlutusExample.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{-# LANGUAGE ScopedTypeVariables #-}
44
module Cardano.Benchmarking.PlutusExample
55
where
6-
import qualified Data.Map as Map
6+
import qualified Data.Map.Strict as Map
77
import Prelude
88

99
import Control.Monad.Trans.Except

bench/tx-generator/src/Cardano/Benchmarking/Script/Env.hs

+11-12
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,27 @@ module Cardano.Benchmarking.Script.Env (
4040
, setEnvWallets
4141
) where
4242

43-
import Prelude
44-
import qualified Data.Text as Text
45-
import Data.Map (Map)
46-
import qualified Data.Map as Map
4743
import Control.Monad.IO.Class
4844
import Control.Monad.Trans.Class
4945
import Control.Monad.Trans.Except
5046
import Control.Monad.Trans.RWS.Strict (RWST)
5147
import qualified Control.Monad.Trans.RWS.Strict as RWS
5248
import "contra-tracer" Control.Tracer (traceWith)
49+
import Data.Map.Strict (Map)
50+
import qualified Data.Map.Strict as Map
51+
import qualified Data.Text as Text
52+
import Prelude
5353

54-
import qualified Cardano.Benchmarking.LogTypes as Tracer
55-
import Ouroboros.Network.NodeToClient (IOManager)
56-
import Cardano.Node.Protocol.Types (SomeConsensusProtocol)
5754
import Cardano.Benchmarking.GeneratorTx
58-
import Cardano.Benchmarking.Wallet
59-
import Cardano.Benchmarking.OuroborosImports(NetworkId,
60-
PaymentKey, ShelleyGenesis, SigningKey,
61-
StandardShelley)
55+
import qualified Cardano.Benchmarking.LogTypes as Tracer
56+
import Cardano.Benchmarking.OuroborosImports (NetworkId, PaymentKey, ShelleyGenesis,
57+
SigningKey, StandardShelley)
6258
import Cardano.Benchmarking.Script.Types
59+
import Cardano.Benchmarking.Wallet
60+
import Cardano.Node.Protocol.Types (SomeConsensusProtocol)
61+
import Ouroboros.Network.NodeToClient (IOManager)
6362

64-
import Cardano.TxGenerator.Types (TxGenError(..))
63+
import Cardano.TxGenerator.Types (TxGenError (..))
6564

6665
data Env = Env { protoParams :: Maybe ProtocolParameterMode
6766
, benchTracers :: Maybe Tracer.BenchTracers

bench/tx-generator/src/Cardano/Benchmarking/Tracer.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ import GHC.Generics
3232
import Data.Aeson as A
3333
import qualified Data.Aeson.KeyMap as KeyMap
3434
import Data.Kind
35-
import qualified Data.Map as Map
35+
import qualified Data.Map.Strict as Map
3636

3737
import Data.Proxy
3838
import Data.Text (Text)
3939
import qualified Data.Text as Text
4040
import Data.Time.Clock
4141

42+
import Ouroboros.Network.IOManager (IOManager)
4243
import Trace.Forward.Utils.DataPoint
4344
import Trace.Forward.Utils.TraceObject
44-
import Ouroboros.Network.IOManager (IOManager)
4545

4646
import Cardano.Api
4747
import Cardano.Logging

bench/tx-generator/src/Cardano/TxGenerator/Setup/Plutus.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module Cardano.TxGenerator.Setup.Plutus
1010
)
1111
where
1212

13-
import qualified Data.Map as Map
13+
import qualified Data.Map.Strict as Map
1414

1515
import Control.Monad.Trans.Except
1616
import Control.Monad.Trans.Except.Extra

cardano-api/src/Cardano/Api/Fees.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ import qualified Data.Array as Array
4747
import Data.Bifunctor (bimap, first)
4848
import qualified Data.ByteString as BS
4949
import Data.ByteString.Short (ShortByteString)
50-
import Data.Map (Map)
51-
import qualified Data.Map as Map
50+
import Data.Map.Strict (Map)
51+
import qualified Data.Map.Strict as Map
5252
import Data.Maybe (catMaybes, fromMaybe, maybeToList)
5353
import Data.Ratio
5454
import Data.Set (Set)

cardano-api/src/Cardano/Api/Query.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ import Data.Aeson.Types (Parser)
7373
import Data.Bifunctor (bimap, first)
7474
import qualified Data.ByteString.Lazy as LBS
7575
import qualified Data.HashMap.Strict as HMS
76-
import Data.Map (Map)
77-
import qualified Data.Map as Map
76+
import Data.Map.Strict (Map)
77+
import qualified Data.Map.Strict as Map
7878
import Data.Maybe (mapMaybe)
7979
import Data.Set (Set)
8080
import qualified Data.Set as Set

cardano-cli/src/Cardano/CLI/Shelley/Run/Validate.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import Cardano.Api
4040
import Cardano.Api.Shelley
4141

4242
import Data.Bifunctor (first)
43-
import qualified Data.Map as Map
43+
import qualified Data.Map.Strict as Map
4444
import Data.Maybe
4545
import qualified Data.Text as Text
4646

cardano-node/src/Cardano/Node/Configuration/Logging.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import Control.Exception.Safe (MonadCatch)
3232
import Control.Monad.Trans.Except.Extra (catchIOExceptT)
3333
import "contra-tracer" Control.Tracer
3434
import Data.List (nub)
35-
import qualified Data.Map as Map
35+
import qualified Data.Map.Strict as Map
3636
import Data.Text (pack)
3737
import Data.Time.Clock (UTCTime, getCurrentTime)
3838
import Data.Version (showVersion)

cardano-node/src/Cardano/Node/Startup.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import qualified Cardano.Api as Api
1111
import Prelude
1212

1313
import Data.Aeson (FromJSON, ToJSON)
14-
import Data.Map (Map)
14+
import Data.Map.Strict (Map)
1515
import Data.Monoid (Last (..), getLast)
1616
import Data.Text (Text, pack)
1717
import Data.Time.Clock (NominalDiffTime, UTCTime)

cardano-node/src/Cardano/Node/Tracing/API.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import Prelude
1212

1313
import "contra-tracer" Control.Tracer (traceWith)
1414
import "trace-dispatcher" Control.Tracer (nullTracer)
15-
import qualified Data.Map as Map
15+
import qualified Data.Map.Strict as Map
1616
import Data.Maybe (fromMaybe)
1717
import Data.Time.Clock (getCurrentTime)
1818

cardano-node/src/Cardano/Node/Tracing/DefaultTraceConfig.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ module Cardano.Node.Tracing.DefaultTraceConfig
22
( defaultCardanoConfig
33
) where
44

5+
import qualified Data.Map.Strict as Map
56
import Prelude
6-
import qualified Data.Map as Map
77

88
import Cardano.Logging
99

cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import Prelude
1919

2020
import Data.Aeson (ToJSON (..), Value (..), (.=))
2121
import Data.List (intercalate)
22-
import qualified Data.Map as Map
22+
import qualified Data.Map.Strict as Map
2323
import Data.Text (Text, pack)
2424
import Data.Time (getCurrentTime)
2525
import Data.Time.Clock.POSIX (POSIXTime, utcTimeToPOSIXSeconds)

cardano-node/src/Cardano/Tracing/Tracers.hs

+7-7
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import Codec.CBOR.Read (DeserialiseFailure)
3636
import Data.Aeson (ToJSON (..), Value (..))
3737
import Data.IntPSQ (IntPSQ)
3838
import qualified Data.IntPSQ as Pq
39-
import qualified Data.Map.Strict as SMap
39+
import qualified Data.Map.Strict as Map
4040
import qualified Data.Text as Text
4141
import Data.Time (NominalDiffTime, UTCTime)
4242
import qualified System.Metrics.Counter as Counter
@@ -580,38 +580,38 @@ traceI tr meta msg i = traceNamedObject tr (meta, LogValue msg (PureI (fromInteg
580580
sendEKGDirectCounter :: EKGDirect -> Text -> IO ()
581581
sendEKGDirectCounter ekgDirect name = do
582582
modifyMVar_ (ekgCounters ekgDirect) $ \registeredMap -> do
583-
case SMap.lookup name registeredMap of
583+
case Map.lookup name registeredMap of
584584
Just counter -> do
585585
Counter.inc counter
586586
pure registeredMap
587587
Nothing -> do
588588
counter <- EKG.getCounter name (ekgServer ekgDirect)
589589
Counter.inc counter
590-
pure $ SMap.insert name counter registeredMap
590+
pure $ Map.insert name counter registeredMap
591591

592592
sendEKGDirectInt :: Integral a => EKGDirect -> Text -> a -> IO ()
593593
sendEKGDirectInt ekgDirect name val = do
594594
modifyMVar_ (ekgGauges ekgDirect) $ \registeredMap -> do
595-
case SMap.lookup name registeredMap of
595+
case Map.lookup name registeredMap of
596596
Just gauge -> do
597597
Gauge.set gauge (fromIntegral val)
598598
pure registeredMap
599599
Nothing -> do
600600
gauge <- EKG.getGauge name (ekgServer ekgDirect)
601601
Gauge.set gauge (fromIntegral val)
602-
pure $ SMap.insert name gauge registeredMap
602+
pure $ Map.insert name gauge registeredMap
603603

604604
sendEKGDirectDouble :: EKGDirect -> Text -> Double -> IO ()
605605
sendEKGDirectDouble ekgDirect name val = do
606606
modifyMVar_ (ekgLabels ekgDirect) $ \registeredMap -> do
607-
case SMap.lookup name registeredMap of
607+
case Map.lookup name registeredMap of
608608
Just label -> do
609609
Label.set label (Text.pack (show val))
610610
pure registeredMap
611611
Nothing -> do
612612
label <- EKG.getLabel name (ekgServer ekgDirect)
613613
Label.set label (Text.pack (show val))
614-
pure $ SMap.insert name label registeredMap
614+
pure $ Map.insert name label registeredMap
615615

616616
--------------------------------------------------------------------------------
617617
-- Consensus Tracers

cardano-testnet/src/Testnet/Cardano.hs

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ module Testnet.Cardano
1717
, cardanoTestnet
1818
) where
1919

20-
import Prelude
2120
import Control.Monad
2221
import Control.Monad.IO.Class (liftIO)
2322
import Data.Aeson ((.=))
@@ -29,14 +28,15 @@ import Hedgehog.Extras.Stock.IO.Network.Sprocket (Sprocket (..))
2928
import Hedgehog.Extras.Stock.Time (formatIso8601, showUTCTimeSeconds)
3029
import Ouroboros.Network.PeerSelection.LedgerPeers (UseLedgerAfter (..))
3130
import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..))
31+
import Prelude
3232
import System.FilePath.Posix ((</>))
3333

3434
import qualified Cardano.Node.Configuration.Topology as NonP2P
3535
import qualified Cardano.Node.Configuration.TopologyP2P as P2P
3636
import qualified Data.Aeson as J
3737
import qualified Data.HashMap.Lazy as HM
3838
import qualified Data.List as L
39-
import qualified Data.Map as M
39+
import qualified Data.Map.Strict as M
4040
import qualified Data.Time.Clock as DTC
4141
import qualified Hedgehog.Extras.Stock.Aeson as J
4242
import qualified Hedgehog.Extras.Stock.IO.Network.Socket as IO
@@ -52,8 +52,8 @@ import qualified System.Info as OS
5252
import qualified Util.Assert as H
5353
import qualified Util.Process as H
5454
import Util.Process (execCli_)
55-
import Util.Runtime as TR (NodeLoggingFormat (..), PaymentKeyPair (..), PoolNode (PoolNode),
56-
PoolNodeKeys (..), TestnetRuntime (..), startNode)
55+
import Util.Runtime as TR (NodeLoggingFormat (..), PaymentKeyPair (..),
56+
PoolNode (PoolNode), PoolNodeKeys (..), TestnetRuntime (..), startNode)
5757

5858
import qualified Testnet.Conf as H
5959

cardano-testnet/src/Testnet/Shelley.hs

+8-8
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@ module Testnet.Shelley
1212
, hprop_testnet_pause
1313
) where
1414

15-
import Prelude
1615
import Control.Monad
17-
import Control.Monad.IO.Class (MonadIO(liftIO))
18-
import Control.Monad.Trans.Resource (MonadResource(liftResourceT), resourceForkIO)
19-
import Data.Aeson (Value, ToJSON(toJSON))
16+
import Control.Monad.IO.Class (MonadIO (liftIO))
17+
import Control.Monad.Trans.Resource (MonadResource (liftResourceT), resourceForkIO)
18+
import Data.Aeson (ToJSON (toJSON), Value)
2019
import Data.ByteString.Lazy (ByteString)
2120
import Data.Functor
2221
import Data.List ((\\))
2322
import Data.Maybe
2423
import Data.String
2524
import Data.Time.Clock (UTCTime)
2625
import Hedgehog.Extras.Stock.Aeson (rewriteObject)
27-
import Hedgehog.Extras.Stock.IO.Network.Sprocket (Sprocket(..))
28-
import Ouroboros.Network.PeerSelection.LedgerPeers (UseLedgerAfter(..))
29-
import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint(..))
26+
import Hedgehog.Extras.Stock.IO.Network.Sprocket (Sprocket (..))
27+
import Ouroboros.Network.PeerSelection.LedgerPeers (UseLedgerAfter (..))
28+
import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..))
29+
import Prelude
3030
import System.FilePath.Posix ((</>))
3131

3232
import qualified Cardano.Node.Configuration.Topology as NonP2P
@@ -35,7 +35,7 @@ import qualified Control.Concurrent as IO
3535
import qualified Data.Aeson as J
3636
import qualified Data.HashMap.Lazy as HM
3737
import qualified Data.List as L
38-
import qualified Data.Map as M
38+
import qualified Data.Map.Strict as M
3939
import qualified Data.Time.Clock as DTC
4040
import qualified Hedgehog as H
4141
import qualified Hedgehog.Extras.Stock.IO.File as IO

0 commit comments

Comments
 (0)