From d67232b23f089273f2f7c97ed2cdbdae767f43c4 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 15 Dec 2025 14:04:24 +0000
Subject: [PATCH 1/3] Initial plan
From fbad9b50c4d0d182962e4565436711ff515a4f7c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 15 Dec 2025 14:08:06 +0000
Subject: [PATCH 2/3] Convert all import qualified statements to postpositive
form
Convert all imports from `import qualified X as Y` to `import X qualified as Y`
for consistency across the codebase. This affects 243 Haskell files.
Co-authored-by: supersven <6235937+supersven@users.noreply.github.com>
---
integration/Setup.hs | 6 +-
integration/test/API/Brig.hs | 10 +--
integration/test/API/BrigInternal.hs | 2 +-
integration/test/API/Cargohold.hs | 20 +++---
integration/test/API/Common.hs | 6 +-
integration/test/API/Federator.hs | 2 +-
integration/test/API/Galley.hs | 16 ++---
integration/test/API/GalleyInternal.hs | 8 +--
integration/test/API/Gundeck.hs | 6 +-
integration/test/API/Nginz.hs | 8 +--
integration/test/API/Spar.hs | 8 +--
integration/test/MLS/Util.hs | 20 +++---
integration/test/SetupHelpers.hs | 26 +++----
integration/test/Test/Auth.hs | 4 +-
integration/test/Test/Bot.hs | 10 +--
integration/test/Test/Brig.hs | 6 +-
integration/test/Test/Cargohold/API.hs | 16 ++---
.../test/Test/Cargohold/API/Federation.hs | 2 +-
integration/test/Test/Cargohold/API/V3.hs | 8 +--
integration/test/Test/Cells.hs | 8 +--
integration/test/Test/ChannelSearch.hs | 2 +-
integration/test/Test/Channels.hs | 2 +-
integration/test/Test/Client.hs | 2 +-
integration/test/Test/Conversation.hs | 8 +--
.../test/Test/Conversation/Migration.hs | 8 +--
integration/test/Test/DNSMock.hs | 4 +-
integration/test/Test/Demo.hs | 8 +--
integration/test/Test/EJPD.hs | 10 +--
integration/test/Test/Errors.hs | 6 +-
integration/test/Test/Events.hs | 16 ++---
integration/test/Test/FeatureFlags.hs | 12 ++--
.../FeatureFlags/AllowedGlobalOperations.hs | 4 +-
integration/test/Test/FeatureFlags/AppLock.hs | 2 +-
integration/test/Test/FeatureFlags/Apps.hs | 2 +-
.../test/Test/FeatureFlags/AssetAuditLog.hs | 4 +-
.../test/Test/FeatureFlags/CellsInternal.hs | 2 +-
.../test/Test/FeatureFlags/ChatBubbles.hs | 2 +-
.../Test/FeatureFlags/ConferenceCalling.hs | 2 +-
.../FeatureFlags/ConsumableNotifications.hs | 2 +-
.../Test/FeatureFlags/DomainRegistration.hs | 2 +-
.../EnforceFileDownloadLocation.hs | 2 +-
.../test/Test/FeatureFlags/LegalHold.hs | 4 +-
.../test/Test/FeatureFlags/MlsE2EId.hs | 4 +-
.../test/Test/FeatureFlags/MlsMigration.hs | 6 +-
integration/test/Test/FeatureFlags/SSO.hs | 4 +-
.../FeatureFlags/SearchVisibilityAvailable.hs | 4 +-
.../FeatureFlags/SearchVisibilityInbound.hs | 2 +-
.../Test/FeatureFlags/SelfDeletingMessages.hs | 2 +-
.../SimplifiedUserConnectionRequestQRCode.hs | 2 +-
.../test/Test/FeatureFlags/StealthUsers.hs | 2 +-
integration/test/Test/FeatureFlags/User.hs | 4 +-
integration/test/Test/FeatureFlags/Util.hs | 10 +--
integration/test/Test/Federation.hs | 8 +--
integration/test/Test/Federator.hs | 2 +-
integration/test/Test/LegalHold.hs | 16 ++---
integration/test/Test/Login.hs | 2 +-
integration/test/Test/MLS.hs | 18 ++---
integration/test/Test/MLS/Clients.hs | 2 +-
integration/test/Test/MLS/Keys.hs | 6 +-
integration/test/Test/MLS/One2One.hs | 12 ++--
integration/test/Test/MLS/SubConversation.hs | 4 +-
integration/test/Test/NginxZAuthModule.hs | 10 +--
integration/test/Test/Property.hs | 2 +-
integration/test/Test/Provider.hs | 4 +-
integration/test/Test/Proxy.hs | 4 +-
integration/test/Test/Search.hs | 12 ++--
integration/test/Test/Spar.hs | 18 ++---
integration/test/Test/Spar/MultiIngressIdp.hs | 4 +-
integration/test/Test/Spar/MultiIngressSSO.hs | 14 ++--
integration/test/Test/Spar/STM.hs | 6 +-
integration/test/Test/Swagger.hs | 6 +-
integration/test/Test/TeamCollaborators.hs | 2 +-
integration/test/Test/Teams.hs | 12 ++--
integration/test/Test/User.hs | 8 +--
integration/test/Test/Version.hs | 2 +-
integration/test/Testlib/App.hs | 6 +-
integration/test/Testlib/Assertions.hs | 30 ++++----
integration/test/Testlib/Cannon.hs | 10 +--
integration/test/Testlib/Certs.hs | 4 +-
integration/test/Testlib/Env.hs | 12 ++--
integration/test/Testlib/HTTP.hs | 22 +++---
integration/test/Testlib/JSON.hs | 24 +++----
integration/test/Testlib/KleisliXML.hs | 8 +--
integration/test/Testlib/Mock.hs | 8 +--
.../test/Testlib/MockIntegrationService.hs | 10 +--
integration/test/Testlib/ModService.hs | 18 ++---
integration/test/Testlib/One2One.hs | 6 +-
integration/test/Testlib/Prelude.hs | 2 +-
integration/test/Testlib/ResourcePool.hs | 2 +-
integration/test/Testlib/Run.hs | 4 +-
integration/test/Testlib/Types.hs | 24 +++----
integration/test/Testlib/VersionedFed.hs | 2 +-
integration/test/Testlib/XML.hs | 6 +-
libs/hscim/server/Main.hs | 2 +-
libs/hscim/src/Web/Scim/AttrName.hs | 2 +-
.../src/Web/Scim/Capabilities/MetaSchema.hs | 4 +-
libs/hscim/src/Web/Scim/Class/Group.hs | 2 +-
libs/hscim/src/Web/Scim/Client.hs | 4 +-
libs/hscim/src/Web/Scim/Schema/Common.hs | 10 +--
libs/hscim/src/Web/Scim/Schema/Error.hs | 8 +--
libs/hscim/src/Web/Scim/Schema/Meta.hs | 4 +-
libs/hscim/src/Web/Scim/Schema/PatchOp.hs | 8 +--
libs/hscim/src/Web/Scim/Schema/Schema.hs | 2 +-
libs/hscim/src/Web/Scim/Schema/User.hs | 6 +-
libs/hscim/src/Web/Scim/Schema/User/Email.hs | 2 +-
libs/hscim/src/Web/Scim/Server/Mock.hs | 8 +--
libs/hscim/src/Web/Scim/Test/Acceptance.hs | 8 +--
libs/hscim/src/Web/Scim/Test/Util.hs | 12 ++--
.../test/Test/Capabilities/MetaSchemaSpec.hs | 4 +-
libs/hscim/test/Test/Class/AuthSpec.hs | 2 +-
libs/hscim/test/Test/FilterSpec.hs | 4 +-
.../Test/Schema/AuthenticationSchemeSpec.hs | 4 +-
libs/hscim/test/Test/Schema/GroupSpec.hs | 6 +-
libs/hscim/test/Test/Schema/MetaSchemaSpec.hs | 4 +-
libs/hscim/test/Test/Schema/PatchOpSpec.hs | 10 +--
libs/hscim/test/Test/Schema/ResourceSpec.hs | 4 +-
libs/hscim/test/Test/Schema/UserSpec.hs | 14 ++--
libs/hscim/test/Test/Schema/Util.hs | 2 +-
.../src/HTTP2/Client/Manager/Internal.hs | 16 ++---
.../test/Test/HTTP2/Client/ManagerSpec.hs | 20 +++---
.../polysemy-wire-zoo/src/Polysemy/TinyLog.hs | 4 +-
.../polysemy-wire-zoo/src/Wire/Sem/FromUTC.hs | 2 +-
libs/polysemy-wire-zoo/src/Wire/Sem/Jwk.hs | 2 +-
.../src/Wire/Sem/Logger/TinyLog.hs | 2 +-
.../src/Wire/Sem/Metrics/IO.hs | 2 +-
.../src/Wire/Sem/Now/Spec.hs | 2 +-
.../src/Wire/Sem/Paging/Cassandra.hs | 2 +-
.../src/Wire/Sem/Random/IO.hs | 2 +-
.../src/Wire/Sem/Random/Null.hs | 2 +-
.../test/Test/IntersperseSpec.hs | 2 +-
libs/wire-api/test/golden.hs | 2 +-
libs/wire-api/test/unit.hs | 2 +-
libs/wire-subsystems/test/Main.hs | 2 +-
.../cargohold/src/CargoHold/API/AuditLog.hs | 4 +-
.../cargohold/src/CargoHold/API/Federation.hs | 4 +-
.../cargohold/src/CargoHold/API/Legacy.hs | 2 +-
.../cargohold/src/CargoHold/API/Public.hs | 12 ++--
services/cargohold/src/CargoHold/API/V3.hs | 20 +++---
services/cargohold/src/CargoHold/AWS.hs | 8 +--
services/cargohold/src/CargoHold/App.hs | 14 ++--
.../cargohold/src/CargoHold/CloudFront.hs | 6 +-
services/cargohold/src/CargoHold/Metrics.hs | 2 +-
services/cargohold/src/CargoHold/Options.hs | 2 +-
services/cargohold/src/CargoHold/Run.hs | 10 +--
services/cargohold/src/CargoHold/S3.hs | 32 ++++-----
services/cargohold/src/CargoHold/Util.hs | 6 +-
services/cargohold/test/integration/API.hs | 6 +-
.../cargohold/test/integration/API/Util.hs | 4 +-
services/cargohold/test/integration/App.hs | 4 +-
.../cargohold/test/integration/TestSetup.hs | 6 +-
services/cargohold/test/unit/Main.hs | 2 +-
.../unit/Test/CargoHold/API/AuditLogTest.hs | 10 +--
.../test/unit/Test/CargoHold/API/LogJSON.hs | 14 ++--
services/spar/migrate-data/src/Main.hs | 2 +-
.../src/Spar/DataMigration/Options.hs | 2 +-
.../src/Spar/DataMigration/Run.hs | 10 +--
.../src/Spar/DataMigration/Types.hs | 6 +-
.../src/Spar/DataMigration/V2_UserV2.hs | 16 ++---
services/spar/schema/Main.hs | 2 +-
services/spar/src/Spar/API.hs | 40 +++++------
services/spar/src/Spar/App.hs | 50 ++++++-------
.../spar/src/Spar/CanonicalInterpreter.hs | 4 +-
services/spar/src/Spar/Data.hs | 8 +--
services/spar/src/Spar/Data/Instances.hs | 6 +-
services/spar/src/Spar/Error.hs | 16 ++---
services/spar/src/Spar/Intra/Brig.hs | 8 +--
services/spar/src/Spar/Intra/BrigApp.hs | 8 +--
services/spar/src/Spar/Intra/Galley.hs | 4 +-
services/spar/src/Spar/Options.hs | 4 +-
services/spar/src/Spar/Orphans.hs | 4 +-
services/spar/src/Spar/Run.hs | 22 +++---
services/spar/src/Spar/Schema/Run.hs | 46 ++++++------
services/spar/src/Spar/Scim.hs | 20 +++---
services/spar/src/Spar/Scim/Auth.hs | 26 +++----
services/spar/src/Spar/Scim/Types.hs | 4 +-
services/spar/src/Spar/Scim/User.hs | 70 +++++++++----------
services/spar/src/Spar/Sem/AReqIDStore.hs | 2 +-
.../src/Spar/Sem/AReqIDStore/Cassandra.hs | 6 +-
services/spar/src/Spar/Sem/AReqIDStore/Mem.hs | 4 +-
services/spar/src/Spar/Sem/AssIDStore.hs | 2 +-
.../spar/src/Spar/Sem/AssIDStore/Cassandra.hs | 6 +-
services/spar/src/Spar/Sem/AssIDStore/Mem.hs | 4 +-
services/spar/src/Spar/Sem/BrigAccess.hs | 2 +-
services/spar/src/Spar/Sem/BrigAccess/Http.hs | 4 +-
services/spar/src/Spar/Sem/DefaultSsoCode.hs | 2 +-
.../src/Spar/Sem/DefaultSsoCode/Cassandra.hs | 2 +-
.../spar/src/Spar/Sem/DefaultSsoCode/Mem.hs | 2 +-
.../spar/src/Spar/Sem/DefaultSsoCode/Spec.hs | 2 +-
.../spar/src/Spar/Sem/GalleyAccess/Http.hs | 4 +-
services/spar/src/Spar/Sem/IdPConfigStore.hs | 4 +-
.../src/Spar/Sem/IdPConfigStore/Cassandra.hs | 6 +-
.../spar/src/Spar/Sem/IdPConfigStore/Mem.hs | 8 +--
.../spar/src/Spar/Sem/IdPRawMetadataStore.hs | 2 +-
.../Spar/Sem/IdPRawMetadataStore/Cassandra.hs | 2 +-
.../src/Spar/Sem/IdPRawMetadataStore/Mem.hs | 4 +-
.../src/Spar/Sem/IdPRawMetadataStore/Spec.hs | 2 +-
services/spar/src/Spar/Sem/Reporter.hs | 2 +-
services/spar/src/Spar/Sem/Reporter/Wai.hs | 4 +-
services/spar/src/Spar/Sem/SAML2/Library.hs | 14 ++--
services/spar/src/Spar/Sem/SAMLUserStore.hs | 2 +-
.../src/Spar/Sem/SAMLUserStore/Cassandra.hs | 4 +-
.../spar/src/Spar/Sem/SAMLUserStore/Mem.hs | 4 +-
.../spar/src/Spar/Sem/SamlProtocolSettings.hs | 4 +-
.../Spar/Sem/SamlProtocolSettings/Servant.hs | 2 +-
.../src/Spar/Sem/ScimExternalIdStore/Mem.hs | 2 +-
.../src/Spar/Sem/ScimExternalIdStore/Spec.hs | 2 +-
.../src/Spar/Sem/ScimTokenStore/Cassandra.hs | 2 +-
.../spar/src/Spar/Sem/ScimTokenStore/Mem.hs | 2 +-
.../src/Spar/Sem/ScimUserTimesStore/Mem.hs | 2 +-
services/spar/src/Spar/Sem/Utils.hs | 14 ++--
.../src/Spar/Sem/VerdictFormatStore/Mem.hs | 6 +-
.../spar/test-integration/Test/LoggingSpec.hs | 6 +-
.../test-integration/Test/Spar/APISpec.hs | 40 +++++------
.../test-integration/Test/Spar/AppSpec.hs | 16 ++---
.../test-integration/Test/Spar/DataSpec.hs | 12 ++--
.../Test/Spar/Intra/BrigSpec.hs | 8 +--
.../Test/Spar/Scim/AuthSpec.hs | 12 ++--
.../Test/Spar/Scim/UserSpec.hs | 60 ++++++++--------
.../spar/test-integration/Util/Activation.hs | 2 +-
services/spar/test-integration/Util/Core.hs | 48 ++++++-------
services/spar/test-integration/Util/Email.hs | 4 +-
.../spar/test-integration/Util/Invitation.hs | 2 +-
services/spar/test-integration/Util/Scim.hs | 40 +++++------
services/spar/test-integration/Util/Types.hs | 4 +-
services/spar/test/Arbitrary.hs | 2 +-
services/spar/test/Test/Spar/APISpec.hs | 10 +--
services/spar/test/Test/Spar/Scim/UserSpec.hs | 2 +-
services/spar/test/Test/Spar/ScimSpec.hs | 16 ++---
.../Test/Spar/Sem/IdPRawMetadataStoreSpec.hs | 2 +-
.../Test/Spar/Sem/SamlProtocolSettingsSpec.hs | 4 +-
tools/db/assets/app/Main.hs | 2 +-
tools/db/assets/src/Assets/Lib.hs | 8 +--
tools/db/mls-users/app/Main.hs | 2 +-
tools/db/mls-users/src/MlsUsers/Lib.hs | 10 +--
tools/db/mls-users/src/MlsUsers/Types.hs | 8 +--
tools/db/phone-users/app/Main.hs | 2 +-
tools/db/phone-users/src/PhoneUsers/Lib.hs | 8 +--
tools/db/phone-users/src/PhoneUsers/Types.hs | 6 +-
tools/db/team-info/app/Main.hs | 2 +-
tools/db/team-info/src/TeamInfo/Lib.hs | 8 +--
tools/rabbitmq-consumer/app/Main.hs | 2 +-
tools/rex/Main.hs | 20 +++---
tools/stern/test/unit/Main.hs | 2 +-
243 files changed, 981 insertions(+), 981 deletions(-)
diff --git a/integration/Setup.hs b/integration/Setup.hs
index 71b172a7e2..8dc2c0dc02 100644
--- a/integration/Setup.hs
+++ b/integration/Setup.hs
@@ -9,10 +9,10 @@ import Data.Bool
import Data.Foldable
import Data.Function
import Data.List
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe
import Data.Monoid
-import qualified Data.Set as Set
+import Data.Set qualified as Set
import Data.String
import Distribution.Simple hiding (Language (..), Module (..))
import Distribution.Simple.BuildPaths
@@ -22,7 +22,7 @@ import Distribution.Types.Library
import Distribution.Types.PackageDescription
import Distribution.Utils.Path
import Language.Haskell.Exts (Comment (..), Decl (TypeSig), Language (..), Module (..), Name (..), ParseMode (..), SrcSpanInfo, associateHaddock, fromParseResult, parseFileWithComments)
-import qualified Language.Haskell.Exts as Exts
+import Language.Haskell.Exts qualified as Exts
import System.Directory
import System.FilePath
import Prelude
diff --git a/integration/test/API/Brig.hs b/integration/test/API/Brig.hs
index 5c7fee6fed..3599528c74 100644
--- a/integration/test/API/Brig.hs
+++ b/integration/test/API/Brig.hs
@@ -19,13 +19,13 @@ module API.Brig where
import API.BrigCommon
import API.Common
-import qualified Data.Aeson as Aeson
-import qualified Data.ByteString.Base64 as Base64
+import Data.Aeson qualified as Aeson
+import Data.ByteString.Base64 qualified as Base64
import Data.Foldable
import Data.Function
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
-import qualified Data.Vector as V
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
+import Data.Vector qualified as V
import GHC.Stack
import Testlib.Prelude
diff --git a/integration/test/API/BrigInternal.hs b/integration/test/API/BrigInternal.hs
index d23d793f2e..f8f3be903d 100644
--- a/integration/test/API/BrigInternal.hs
+++ b/integration/test/API/BrigInternal.hs
@@ -19,7 +19,7 @@ module API.BrigInternal where
import API.BrigCommon
import API.Common
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import Data.Aeson.Types (Pair)
import Data.Function
import Data.Maybe
diff --git a/integration/test/API/Cargohold.hs b/integration/test/API/Cargohold.hs
index 6da1ff2941..3ac1635ab1 100644
--- a/integration/test/API/Cargohold.hs
+++ b/integration/test/API/Cargohold.hs
@@ -18,23 +18,23 @@
module API.Cargohold where
import API.Federator
-import qualified Codec.MIME.Parse as MIME
-import qualified Codec.MIME.Type as MIME
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.KeyMap as Aeson
+import Codec.MIME.Parse qualified as MIME
+import Codec.MIME.Type qualified as MIME
+import Data.Aeson qualified as Aeson
+import Data.Aeson.KeyMap qualified as Aeson
import Data.ByteString.Builder
import Data.ByteString.Conversion
-import qualified Data.ByteString.Lazy as LBS
-import qualified Data.ByteString.Lazy as Lazy
-import qualified Data.ByteString.Lazy.Char8 as LBSC
-import qualified Data.ByteString.Lazy.Char8 as Lazy8
+import Data.ByteString.Lazy qualified as LBS
+import Data.ByteString.Lazy qualified as Lazy
+import Data.ByteString.Lazy.Char8 qualified as LBSC
+import Data.ByteString.Lazy.Char8 qualified as Lazy8
import Data.CaseInsensitive
import Data.String.Conversions
-import qualified Data.Text as T
+import Data.Text qualified as T
import Data.Text.Encoding (decodeLatin1, decodeUtf8, encodeUtf8, encodeUtf8Builder)
import GHC.Stack
import Network.HTTP.Client (Request (redirectCount, requestHeaders))
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Network.HTTP.Types.Header (HeaderName)
import Testlib.Prelude
import UnliftIO (catch)
diff --git a/integration/test/API/Common.hs b/integration/test/API/Common.hs
index a22f489c9f..84972e756d 100644
--- a/integration/test/API/Common.hs
+++ b/integration/test/API/Common.hs
@@ -20,10 +20,10 @@ module API.Common where
import Control.Monad
import Control.Monad.IO.Class
import Data.Array ((!))
-import qualified Data.Array as Array
-import qualified Data.ByteString as BS
+import Data.Array qualified as Array
+import Data.ByteString qualified as BS
import Data.Scientific (scientific)
-import qualified Data.Vector as Vector
+import Data.Vector qualified as Vector
import System.Random (randomIO, randomRIO)
import Testlib.Prelude
diff --git a/integration/test/API/Federator.hs b/integration/test/API/Federator.hs
index 4d0bdbe007..9668a5e3bd 100644
--- a/integration/test/API/Federator.hs
+++ b/integration/test/API/Federator.hs
@@ -19,7 +19,7 @@ module API.Federator where
import Data.Function
import GHC.Stack
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Testlib.Prelude
getMetrics ::
diff --git a/integration/test/API/Galley.hs b/integration/test/API/Galley.hs
index c6295e4463..22983d5ac0 100644
--- a/integration/test/API/Galley.hs
+++ b/integration/test/API/Galley.hs
@@ -24,15 +24,15 @@ import API.Common
import Control.Lens hiding ((.=))
import Control.Monad.Reader
import Control.Retry
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.Types as Aeson
-import qualified Data.ByteString.Base64 as B64
-import qualified Data.ByteString.Base64.URL as B64U
-import qualified Data.ByteString.Char8 as BS
-import qualified Data.ByteString.Lazy as LBS
-import qualified Data.ProtoLens as Proto
+import Data.Aeson qualified as Aeson
+import Data.Aeson.Types qualified as Aeson
+import Data.ByteString.Base64 qualified as B64
+import Data.ByteString.Base64.URL qualified as B64U
+import Data.ByteString.Char8 qualified as BS
+import Data.ByteString.Lazy qualified as LBS
+import Data.ProtoLens qualified as Proto
import Data.ProtoLens.Labels ()
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Numeric.Lens
import Proto.Otr as Proto
import Testlib.Prelude
diff --git a/integration/test/API/GalleyInternal.hs b/integration/test/API/GalleyInternal.hs
index 2579be6c15..163bd3419f 100644
--- a/integration/test/API/GalleyInternal.hs
+++ b/integration/test/API/GalleyInternal.hs
@@ -17,11 +17,11 @@
module API.GalleyInternal where
-import qualified Data.Aeson as A
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as A
+import Data.Aeson qualified as Aeson
import Data.String.Conversions (cs)
-import qualified Data.Text as T
-import qualified Data.Vector as Vector
+import Data.Text qualified as T
+import Data.Vector qualified as Vector
import GHC.Stack
import Testlib.Prelude
diff --git a/integration/test/API/Gundeck.hs b/integration/test/API/Gundeck.hs
index cdf076ddc1..13c74205f5 100644
--- a/integration/test/API/Gundeck.hs
+++ b/integration/test/API/Gundeck.hs
@@ -18,9 +18,9 @@
module API.Gundeck where
import API.Common
-import qualified Data.ByteString.Base16 as Base16
-import qualified Data.Text as Text
-import qualified Data.Text.Encoding as Text
+import Data.ByteString.Base16 qualified as Base16
+import Data.Text qualified as Text
+import Data.Text.Encoding qualified as Text
import Testlib.Prelude
data GetNotifications = GetNotifications
diff --git a/integration/test/API/Nginz.hs b/integration/test/API/Nginz.hs
index 3649bf1d8c..5b8829b26d 100644
--- a/integration/test/API/Nginz.hs
+++ b/integration/test/API/Nginz.hs
@@ -18,10 +18,10 @@
module API.Nginz where
import API.Cargohold
-import qualified Codec.MIME.Type as MIME
-import qualified Data.Aeson as Aeson
-import qualified Data.ByteString.Lazy as LBS
-import qualified Network.HTTP.Client as HTTP
+import Codec.MIME.Type qualified as MIME
+import Data.Aeson qualified as Aeson
+import Data.ByteString.Lazy qualified as LBS
+import Network.HTTP.Client qualified as HTTP
import Testlib.Prelude
getSystemSettingsUnAuthorized :: (HasCallStack, MakesValue domain) => domain -> App Response
diff --git a/integration/test/API/Spar.hs b/integration/test/API/Spar.hs
index 9fd18a9efd..a7ef650463 100644
--- a/integration/test/API/Spar.hs
+++ b/integration/test/API/Spar.hs
@@ -18,16 +18,16 @@
module API.Spar where
import API.Common (defPassword)
-import qualified Data.ByteString.Base64.Lazy as EL
+import Data.ByteString.Base64.Lazy qualified as EL
import Data.String.Conversions (cs)
import Data.String.Conversions.Monomorphic (fromLT)
import GHC.Stack
import Network.HTTP.Client (Request)
import Network.HTTP.Client.MultipartFormData
-import qualified SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.Test.MockResponse as SAML
+import SAML2.WebSSO qualified as SAML
+import SAML2.WebSSO.Test.MockResponse qualified as SAML
import Testlib.Prelude
-import qualified Text.XML as XML
+import Text.XML qualified as XML
-- | https://staging-nginz-https.zinfra.io/v6/api/swagger-ui/#/default/get_scim_auth_tokens
getScimTokens :: (HasCallStack, MakesValue caller) => caller -> App Response
diff --git a/integration/test/MLS/Util.hs b/integration/test/MLS/Util.hs
index 8e50d2998c..626284b2fc 100644
--- a/integration/test/MLS/Util.hs
+++ b/integration/test/MLS/Util.hs
@@ -29,21 +29,21 @@ import Control.Monad.Codensity
import Control.Monad.Cont
import Control.Monad.Reader
import Control.Monad.Trans.Maybe
-import qualified Data.Aeson as Aeson
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Base64 as Base64
-import qualified Data.ByteString.Char8 as B8
-import qualified Data.ByteString.Char8 as C8
+import Data.Aeson qualified as Aeson
+import Data.ByteString qualified as BS
+import Data.ByteString.Base64 qualified as Base64
+import Data.ByteString.Char8 qualified as B8
+import Data.ByteString.Char8 qualified as C8
import Data.Default
import Data.Foldable
import Data.Function
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe
-import qualified Data.Set as Set
-import qualified Data.Text.Encoding as T
+import Data.Set qualified as Set
+import Data.Text.Encoding qualified as T
import Data.Traversable
-import qualified Data.UUID as UUID
-import qualified Data.UUID.V4 as UUIDV4
+import Data.UUID qualified as UUID
+import Data.UUID.V4 qualified as UUIDV4
import GHC.Stack
import Notifications
import System.Directory
diff --git a/integration/test/SetupHelpers.hs b/integration/test/SetupHelpers.hs
index 61f8497d9d..b1a846186b 100644
--- a/integration/test/SetupHelpers.hs
+++ b/integration/test/SetupHelpers.hs
@@ -29,25 +29,25 @@ import API.Spar
import Control.Monad.Reader
import Crypto.Random (getRandomBytes)
import Data.Aeson hiding ((.=))
-import qualified Data.Aeson.Types as Aeson
-import qualified Data.ByteString.Base16 as Base16
-import qualified Data.ByteString.Base64.Lazy as EL
-import qualified Data.ByteString.Base64.URL as B64Url
+import Data.Aeson.Types qualified as Aeson
+import Data.ByteString.Base16 qualified as Base16
+import Data.ByteString.Base64.Lazy qualified as EL
+import Data.ByteString.Base64.URL qualified as B64Url
import Data.ByteString.Char8 (unpack)
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Default
import Data.Function
import Data.String.Conversions (cs)
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import Data.Text.Encoding (decodeUtf8)
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Data.UUID.V1 (nextUUID)
import Data.UUID.V4 (nextRandom)
import Data.Vector (fromList)
import GHC.Stack
-import qualified SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.API.Example as SAML
-import qualified SAML2.WebSSO.Test.MockResponse as SAML
+import SAML2.WebSSO qualified as SAML
+import SAML2.WebSSO.API.Example qualified as SAML
+import SAML2.WebSSO.Test.MockResponse qualified as SAML
import SAML2.WebSSO.Test.Util (SampleIdP (..), makeSampleIdPMetadata)
import System.Random (randomRIO)
import Test.DNSMock
@@ -55,9 +55,9 @@ import Testlib.JSON
import Testlib.Prelude
import Testlib.Printing (indent)
import Text.Regex.TDFA ((=~))
-import qualified Text.XML as XML
-import qualified Text.XML.Cursor as XML
-import qualified Text.XML.DSig as SAML
+import Text.XML qualified as XML
+import Text.XML.Cursor qualified as XML
+import Text.XML.DSig qualified as SAML
import UnliftIO (pooledForConcurrentlyN)
randomUser :: (HasCallStack, MakesValue domain) => domain -> CreateUser -> App Value
diff --git a/integration/test/Test/Auth.hs b/integration/test/Test/Auth.hs
index 5a723c390d..448584c70a 100644
--- a/integration/test/Test/Auth.hs
+++ b/integration/test/Test/Auth.hs
@@ -21,8 +21,8 @@ import API.Brig
import API.BrigInternal
import API.Common
import API.GalleyInternal
-import qualified API.Nginz as Nginz
-import qualified Data.ByteString.Char8 as BSChar8
+import API.Nginz qualified as Nginz
+import Data.ByteString.Char8 qualified as BSChar8
import SetupHelpers
import Testlib.Prelude
import Text.Read
diff --git a/integration/test/Test/Bot.hs b/integration/test/Test/Bot.hs
index f96bc7733a..a51ae48292 100644
--- a/integration/test/Test/Bot.hs
+++ b/integration/test/Test/Bot.hs
@@ -22,16 +22,16 @@ import API.Common
import API.Galley
import Control.Lens hiding ((.=))
import Control.Monad.Reader
-import qualified Data.Aeson as Aeson
-import qualified Data.ProtoLens as Proto
+import Data.Aeson qualified as Aeson
+import Data.ProtoLens qualified as Proto
import Data.Proxy (Proxy (Proxy))
import Data.String.Conversions (cs)
import Network.HTTP.Types (status200, status201)
import Network.Wai (responseLBS)
-import qualified Network.Wai as Wai
+import Network.Wai qualified as Wai
import Numeric.Lens (hex)
-import qualified Proto.Otr as Proto
-import qualified Proto.Otr_Fields as Proto
+import Proto.Otr qualified as Proto
+import Proto.Otr_Fields qualified as Proto
import Servant.API
import Servant.API.Extended.Endpath
import Servant.Server
diff --git a/integration/test/Test/Brig.hs b/integration/test/Test/Brig.hs
index 962274a4b2..9b9bfd56cd 100644
--- a/integration/test/Test/Brig.hs
+++ b/integration/test/Test/Brig.hs
@@ -21,7 +21,7 @@
module Test.Brig where
import API.Brig as BrigP
-import qualified API.BrigInternal as BrigI
+import API.BrigInternal qualified as BrigI
import API.Common
import API.GalleyInternal (setTeamFeatureStatus)
import API.Spar
@@ -29,8 +29,8 @@ import Control.Retry
import Data.Aeson.Types hiding ((.=))
import Data.List.Split
import Data.String.Conversions
-import qualified Data.UUID as UUID
-import qualified Data.UUID.V4 as UUID
+import Data.UUID qualified as UUID
+import Data.UUID.V4 qualified as UUID
import GHC.Stack
import SetupHelpers
import System.IO.Extra
diff --git a/integration/test/Test/Cargohold/API.hs b/integration/test/Test/Cargohold/API.hs
index f084bf4657..79226f72e9 100644
--- a/integration/test/Test/Cargohold/API.hs
+++ b/integration/test/Test/Cargohold/API.hs
@@ -20,21 +20,21 @@
module Test.Cargohold.API where
import API.Cargohold
-import qualified Codec.MIME.Type as MIME
+import Codec.MIME.Type qualified as MIME
import Control.Lens hiding (sets, (.=))
-import qualified Data.Aeson.KeyMap as KM
+import Data.Aeson.KeyMap qualified as KM
import Data.Aeson.Types (Pair)
-import qualified Data.ByteString.Char8 as BC
-import qualified Data.ByteString.Char8 as C8
-import qualified Data.ByteString.Lazy as LBS hiding (replicate)
-import qualified Data.ByteString.Lazy.Char8 as L8
+import Data.ByteString.Char8 qualified as BC
+import Data.ByteString.Char8 qualified as C8
+import Data.ByteString.Lazy qualified as LBS hiding (replicate)
+import Data.ByteString.Lazy.Char8 qualified as L8
import Data.CaseInsensitive (mk)
import Data.String.Conversions
import Data.Time (UTCTime, defaultTimeLocale, parseTimeOrError, rfc822DateFormat)
import Data.Time.Format.ISO8601 (formatParseM, iso8601Format)
import Network.HTTP.Client (parseUrlThrow)
-import qualified Network.HTTP.Client as HTTP
-import qualified Network.HTTP.Types as HTTP
+import Network.HTTP.Client qualified as HTTP
+import Network.HTTP.Types qualified as HTTP
import SetupHelpers (createTeam, randomId, randomUser)
import Testlib.Prelude
import UnliftIO.Concurrent
diff --git a/integration/test/Test/Cargohold/API/Federation.hs b/integration/test/Test/Cargohold/API/Federation.hs
index c5c69031d6..676e0c6830 100644
--- a/integration/test/Test/Cargohold/API/Federation.hs
+++ b/integration/test/Test/Cargohold/API/Federation.hs
@@ -18,7 +18,7 @@
module Test.Cargohold.API.Federation where
import API.Cargohold
-import qualified Codec.MIME.Type as MIME
+import Codec.MIME.Type qualified as MIME
import Control.Lens hiding ((.=))
import Crypto.Random (getRandomBytes)
import Data.ByteString.Builder
diff --git a/integration/test/Test/Cargohold/API/V3.hs b/integration/test/Test/Cargohold/API/V3.hs
index 979a958a26..4361f58ed1 100644
--- a/integration/test/Test/Cargohold/API/V3.hs
+++ b/integration/test/Test/Cargohold/API/V3.hs
@@ -22,11 +22,11 @@ module Test.Cargohold.API.V3 where
import API.Cargohold
import Codec.MIME.Type (showMIMEType)
import Crypto.Random
-import qualified Data.Aeson.KeyMap as KM
-import qualified Data.ByteString as BS
+import Data.Aeson.KeyMap qualified as KM
+import Data.ByteString qualified as BS
import Data.ByteString.Builder
-import qualified Data.ByteString.Char8 as C8
-import qualified Data.ByteString.Lazy as LBS
+import Data.ByteString.Char8 qualified as C8
+import Data.ByteString.Lazy qualified as LBS
import Data.CaseInsensitive
import Data.String.Conversions
import Data.Text
diff --git a/integration/test/Test/Cells.hs b/integration/test/Test/Cells.hs
index fad0d12c4b..a4d324f53c 100644
--- a/integration/test/Test/Cells.hs
+++ b/integration/test/Test/Cells.hs
@@ -20,17 +20,17 @@
module Test.Cells where
import API.Galley
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import Control.Concurrent
import Control.Concurrent.Async
import Control.Concurrent.STM
-import qualified Control.Exception as E
+import Control.Exception qualified as E
import Control.Monad.Codensity
import Control.Monad.Reader
import Control.Retry
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
import Data.IORef
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Network.AMQP
import Network.AMQP.Extended
import Notifications
diff --git a/integration/test/Test/ChannelSearch.hs b/integration/test/Test/ChannelSearch.hs
index 2338471375..c92ea38274 100644
--- a/integration/test/Test/ChannelSearch.hs
+++ b/integration/test/Test/ChannelSearch.hs
@@ -20,7 +20,7 @@
module Test.ChannelSearch where
import API.Galley
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import MLS.Util
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/Channels.hs b/integration/test/Test/Channels.hs
index 47f318bd75..ac33d91a4e 100644
--- a/integration/test/Test/Channels.hs
+++ b/integration/test/Test/Channels.hs
@@ -23,7 +23,7 @@ import API.Brig
import API.Common (randomName)
import API.Galley
import API.GalleyInternal hiding (getConversation, setTeamFeatureConfig)
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import GHC.Stack
import MLS.Util
import Notifications (isChannelAddPermissionUpdate, isMemberJoinNotif, isWelcomeNotif)
diff --git a/integration/test/Test/Client.hs b/integration/test/Test/Client.hs
index 3df62bca12..da143cacbb 100644
--- a/integration/test/Test/Client.hs
+++ b/integration/test/Test/Client.hs
@@ -20,7 +20,7 @@
module Test.Client where
import API.Brig
-import qualified API.Brig as API
+import API.Brig qualified as API
import API.BrigCommon
import API.Gundeck
import Control.Lens hiding ((.=))
diff --git a/integration/test/Test/Conversation.hs b/integration/test/Test/Conversation.hs
index 131260d5b7..7590f4f163 100644
--- a/integration/test/Test/Conversation.hs
+++ b/integration/test/Test/Conversation.hs
@@ -20,16 +20,16 @@
module Test.Conversation where
import API.Brig
-import qualified API.BrigInternal as BrigI
+import API.BrigInternal qualified as BrigI
import API.Galley
import API.GalleyInternal hiding (getConversation)
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import Control.Applicative
import Control.Concurrent (threadDelay)
import Control.Monad.Codensity
import Control.Monad.Reader
-import qualified Data.Aeson as Aeson
-import qualified Data.Text as T
+import Data.Aeson qualified as Aeson
+import Data.Text qualified as T
import GHC.Stack
import Notifications
import SetupHelpers hiding (deleteUser)
diff --git a/integration/test/Test/Conversation/Migration.hs b/integration/test/Test/Conversation/Migration.hs
index 97472960d4..8c35353bce 100644
--- a/integration/test/Test/Conversation/Migration.hs
+++ b/integration/test/Test/Conversation/Migration.hs
@@ -18,11 +18,11 @@ import Control.Concurrent (threadDelay)
import Control.Monad.Codensity
import Control.Monad.Reader
import Data.IntMap (IntMap)
-import qualified Data.IntMap as IntMap
-import qualified Data.IntSet as IntSet
+import Data.IntMap qualified as IntMap
+import Data.IntSet qualified as IntSet
import Data.Text (Text)
-import qualified Data.Text as Text
-import qualified Data.Text.Encoding as Text
+import Data.Text qualified as Text
+import Data.Text.Encoding qualified as Text
import GHC.Stack
import MLS.Util
import Notifications
diff --git a/integration/test/Test/DNSMock.hs b/integration/test/Test/DNSMock.hs
index 69ac6af278..a29185c856 100644
--- a/integration/test/Test/DNSMock.hs
+++ b/integration/test/Test/DNSMock.hs
@@ -21,10 +21,10 @@ module Test.DNSMock where
import Control.Lens
import Control.Monad.Reader.Class
-import qualified Data.ByteString.Lazy as LBS
+import Data.ByteString.Lazy qualified as LBS
import Network.DNS
import Network.DNS.Decode as Dec
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Testlib.Prelude
type LByteString = LBS.ByteString
diff --git a/integration/test/Test/Demo.hs b/integration/test/Test/Demo.hs
index 8d93872208..fc31635f31 100644
--- a/integration/test/Test/Demo.hs
+++ b/integration/test/Test/Demo.hs
@@ -3,10 +3,10 @@
-- | This module is meant to show how Testlib can be used
module Test.Demo where
-import qualified API.Brig as BrigP
-import qualified API.BrigInternal as BrigI
-import qualified API.GalleyInternal as GalleyI
-import qualified API.Nginz as Nginz
+import API.Brig qualified as BrigP
+import API.BrigInternal qualified as BrigI
+import API.GalleyInternal qualified as GalleyI
+import API.Nginz qualified as Nginz
import GHC.Stack
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/EJPD.hs b/integration/test/Test/EJPD.hs
index c096024aec..26961e140c 100644
--- a/integration/test/Test/EJPD.hs
+++ b/integration/test/Test/EJPD.hs
@@ -24,17 +24,17 @@ module Test.EJPD
where
import API.Brig
-import qualified API.BrigInternal as BI
+import API.BrigInternal qualified as BI
import API.Galley
import API.Gundeck
import Control.Lens hiding ((.=))
import Control.Monad.Reader
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
import Data.Aeson.Lens
import Data.String.Conversions (cs)
-import qualified Data.UUID as UUID
-import qualified Data.UUID.V4 as UUID
-import qualified Network.Wreq as Wreq
+import Data.UUID qualified as UUID
+import Data.UUID.V4 qualified as UUID
+import Network.Wreq qualified as Wreq
import SetupHelpers
import Testlib.JSON
import Testlib.Prelude
diff --git a/integration/test/Test/Errors.hs b/integration/test/Test/Errors.hs
index 055ffbdbcf..e13af50058 100644
--- a/integration/test/Test/Errors.hs
+++ b/integration/test/Test/Errors.hs
@@ -22,9 +22,9 @@ module Test.Errors where
import API.Brig
import Control.Monad.Codensity
import Control.Monad.Reader
-import qualified Data.Aeson as Aeson
-import qualified Network.HTTP.Types as HTTP
-import qualified Network.Wai as Wai
+import Data.Aeson qualified as Aeson
+import Network.HTTP.Types qualified as HTTP
+import Network.Wai qualified as Wai
import SetupHelpers
import Testlib.Mock
import Testlib.Prelude
diff --git a/integration/test/Test/Events.hs b/integration/test/Test/Events.hs
index d85b42ba32..b220966d9c 100644
--- a/integration/test/Test/Events.hs
+++ b/integration/test/Test/Events.hs
@@ -24,8 +24,8 @@ import API.BrigCommon
import API.Common
import API.Galley
import API.Gundeck
-import qualified API.GundeckInternal as GundeckInternal
-import qualified Control.Concurrent.Timeout as Timeout
+import API.GundeckInternal qualified as GundeckInternal
+import Control.Concurrent.Timeout qualified as Timeout
import Control.Lens ((.~), (^?!))
import Control.Monad.Codensity
import Control.Monad.RWS (asks)
@@ -33,22 +33,22 @@ import Control.Monad.Trans.Class
import Control.Monad.Trans.Maybe
import Control.Retry
import Data.ByteString.Conversion (toByteString')
-import qualified Data.ProtoLens as Proto
+import Data.ProtoLens qualified as Proto
import Data.ProtoLens.Labels ()
import Data.Proxy (Proxy (..))
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import Data.Timeout
import Network.AMQP.Extended
import Network.RabbitMqAdmin
-import qualified Network.WebSockets as WS
+import Network.WebSockets qualified as WS
import Notifications
import Numeric.Lens
-import qualified Proto.Otr as Proto
-import qualified Proto.Otr_Fields as Proto
+import Proto.Otr qualified as Proto
+import Proto.Otr_Fields qualified as Proto
import Servant.API (AsApi, ToServant, toServant)
import Servant.API.Generic (fromServant)
import Servant.Client (AsClientT)
-import qualified Servant.Client as Servant
+import Servant.Client qualified as Servant
import SetupHelpers
import Testlib.Prelude
import Testlib.ResourcePool
diff --git a/integration/test/Test/FeatureFlags.hs b/integration/test/Test/FeatureFlags.hs
index c0623fb17f..45c4751d4c 100644
--- a/integration/test/Test/FeatureFlags.hs
+++ b/integration/test/Test/FeatureFlags.hs
@@ -19,12 +19,12 @@
module Test.FeatureFlags where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
-import qualified Data.Aeson as A
-import qualified Data.Aeson.Key as A
-import qualified Data.Aeson.KeyMap as KM
-import qualified Data.Set as Set
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
+import Data.Aeson qualified as A
+import Data.Aeson.Key qualified as A
+import Data.Aeson.KeyMap qualified as KM
+import Data.Set qualified as Set
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/AllowedGlobalOperations.hs b/integration/test/Test/FeatureFlags/AllowedGlobalOperations.hs
index 0f925444ed..acc1f93358 100644
--- a/integration/test/Test/FeatureFlags/AllowedGlobalOperations.hs
+++ b/integration/test/Test/FeatureFlags/AllowedGlobalOperations.hs
@@ -17,8 +17,8 @@
module Test.FeatureFlags.AllowedGlobalOperations where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/AppLock.hs b/integration/test/Test/FeatureFlags/AppLock.hs
index 60d175edc3..8ad218c71d 100644
--- a/integration/test/Test/FeatureFlags/AppLock.hs
+++ b/integration/test/Test/FeatureFlags/AppLock.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.AppLock where
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/Apps.hs b/integration/test/Test/FeatureFlags/Apps.hs
index 06f82ea02b..91f90b49af 100644
--- a/integration/test/Test/FeatureFlags/Apps.hs
+++ b/integration/test/Test/FeatureFlags/Apps.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.Apps where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/AssetAuditLog.hs b/integration/test/Test/FeatureFlags/AssetAuditLog.hs
index 3e3abc7572..33bd562a69 100644
--- a/integration/test/Test/FeatureFlags/AssetAuditLog.hs
+++ b/integration/test/Test/FeatureFlags/AssetAuditLog.hs
@@ -17,8 +17,8 @@
module Test.FeatureFlags.AssetAuditLog where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/CellsInternal.hs b/integration/test/Test/FeatureFlags/CellsInternal.hs
index 550d079d14..ba6b6801fc 100644
--- a/integration/test/Test/FeatureFlags/CellsInternal.hs
+++ b/integration/test/Test/FeatureFlags/CellsInternal.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.CellsInternal where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.Cells (QueueConsumer (..), getMessage, watchCellsEvents)
import Test.FeatureFlags.Util
diff --git a/integration/test/Test/FeatureFlags/ChatBubbles.hs b/integration/test/Test/FeatureFlags/ChatBubbles.hs
index bb573b4945..4271715152 100644
--- a/integration/test/Test/FeatureFlags/ChatBubbles.hs
+++ b/integration/test/Test/FeatureFlags/ChatBubbles.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.ChatBubbles where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/ConferenceCalling.hs b/integration/test/Test/FeatureFlags/ConferenceCalling.hs
index 7a652ccca1..e5db5759ef 100644
--- a/integration/test/Test/FeatureFlags/ConferenceCalling.hs
+++ b/integration/test/Test/FeatureFlags/ConferenceCalling.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.ConferenceCalling where
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/ConsumableNotifications.hs b/integration/test/Test/FeatureFlags/ConsumableNotifications.hs
index 4411f9c891..7803b5b554 100644
--- a/integration/test/Test/FeatureFlags/ConsumableNotifications.hs
+++ b/integration/test/Test/FeatureFlags/ConsumableNotifications.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.ConsumableNotifications where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/DomainRegistration.hs b/integration/test/Test/FeatureFlags/DomainRegistration.hs
index 96d4d5d8ed..89b60774bc 100644
--- a/integration/test/Test/FeatureFlags/DomainRegistration.hs
+++ b/integration/test/Test/FeatureFlags/DomainRegistration.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.DomainRegistration where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/EnforceFileDownloadLocation.hs b/integration/test/Test/FeatureFlags/EnforceFileDownloadLocation.hs
index 06f51918e9..f90ca4777b 100644
--- a/integration/test/Test/FeatureFlags/EnforceFileDownloadLocation.hs
+++ b/integration/test/Test/FeatureFlags/EnforceFileDownloadLocation.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.EnforceFileDownloadLocation where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/LegalHold.hs b/integration/test/Test/FeatureFlags/LegalHold.hs
index 2d5e5d7da6..d33d18bf71 100644
--- a/integration/test/Test/FeatureFlags/LegalHold.hs
+++ b/integration/test/Test/FeatureFlags/LegalHold.hs
@@ -17,8 +17,8 @@
module Test.FeatureFlags.LegalHold where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
import Control.Monad.Codensity (Codensity (runCodensity))
import Control.Monad.Reader
import SetupHelpers
diff --git a/integration/test/Test/FeatureFlags/MlsE2EId.hs b/integration/test/Test/FeatureFlags/MlsE2EId.hs
index 53fadba68f..86579a9c51 100644
--- a/integration/test/Test/FeatureFlags/MlsE2EId.hs
+++ b/integration/test/Test/FeatureFlags/MlsE2EId.hs
@@ -17,8 +17,8 @@
module Test.FeatureFlags.MlsE2EId where
-import qualified API.Galley as Public
-import qualified Data.Aeson as A
+import API.Galley qualified as Public
+import Data.Aeson qualified as A
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/MlsMigration.hs b/integration/test/Test/FeatureFlags/MlsMigration.hs
index fefd5b7006..f93a964179 100644
--- a/integration/test/Test/FeatureFlags/MlsMigration.hs
+++ b/integration/test/Test/FeatureFlags/MlsMigration.hs
@@ -17,9 +17,9 @@
module Test.FeatureFlags.MlsMigration where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
-import qualified Data.Aeson as A
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
+import Data.Aeson qualified as A
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/SSO.hs b/integration/test/Test/FeatureFlags/SSO.hs
index dcffe60537..f1623a022d 100644
--- a/integration/test/Test/FeatureFlags/SSO.hs
+++ b/integration/test/Test/FeatureFlags/SSO.hs
@@ -17,8 +17,8 @@
module Test.FeatureFlags.SSO where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/SearchVisibilityAvailable.hs b/integration/test/Test/FeatureFlags/SearchVisibilityAvailable.hs
index f5a547d606..f05dd7a9cd 100644
--- a/integration/test/Test/FeatureFlags/SearchVisibilityAvailable.hs
+++ b/integration/test/Test/FeatureFlags/SearchVisibilityAvailable.hs
@@ -17,8 +17,8 @@
module Test.FeatureFlags.SearchVisibilityAvailable where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/SearchVisibilityInbound.hs b/integration/test/Test/FeatureFlags/SearchVisibilityInbound.hs
index 850655b64a..58e57849b4 100644
--- a/integration/test/Test/FeatureFlags/SearchVisibilityInbound.hs
+++ b/integration/test/Test/FeatureFlags/SearchVisibilityInbound.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.SearchVisibilityInbound where
-import qualified API.Galley as Public
+import API.Galley qualified as Public
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/SelfDeletingMessages.hs b/integration/test/Test/FeatureFlags/SelfDeletingMessages.hs
index 050df931cf..9acd64f705 100644
--- a/integration/test/Test/FeatureFlags/SelfDeletingMessages.hs
+++ b/integration/test/Test/FeatureFlags/SelfDeletingMessages.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.SelfDeletingMessages where
-import qualified Data.Aeson.Types as A
+import Data.Aeson.Types qualified as A
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/SimplifiedUserConnectionRequestQRCode.hs b/integration/test/Test/FeatureFlags/SimplifiedUserConnectionRequestQRCode.hs
index b9575c1d32..6f63c7cf48 100644
--- a/integration/test/Test/FeatureFlags/SimplifiedUserConnectionRequestQRCode.hs
+++ b/integration/test/Test/FeatureFlags/SimplifiedUserConnectionRequestQRCode.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.SimplifiedUserConnectionRequestQRCode where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/StealthUsers.hs b/integration/test/Test/FeatureFlags/StealthUsers.hs
index 1d95c0e8ac..e1642ed38d 100644
--- a/integration/test/Test/FeatureFlags/StealthUsers.hs
+++ b/integration/test/Test/FeatureFlags/StealthUsers.hs
@@ -17,7 +17,7 @@
module Test.FeatureFlags.StealthUsers where
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import SetupHelpers
import Test.FeatureFlags.Util
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/User.hs b/integration/test/Test/FeatureFlags/User.hs
index 22cf65a515..44662c4577 100644
--- a/integration/test/Test/FeatureFlags/User.hs
+++ b/integration/test/Test/FeatureFlags/User.hs
@@ -17,9 +17,9 @@
module Test.FeatureFlags.User where
-import qualified API.BrigInternal as I
+import API.BrigInternal qualified as I
import API.Galley
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/FeatureFlags/Util.hs b/integration/test/Test/FeatureFlags/Util.hs
index 7ab2eebc65..41863da6a2 100644
--- a/integration/test/Test/FeatureFlags/Util.hs
+++ b/integration/test/Test/FeatureFlags/Util.hs
@@ -17,11 +17,11 @@
module Test.FeatureFlags.Util where
-import qualified API.Galley as Public
-import qualified API.GalleyInternal as Internal
-import qualified Data.Aeson as A
-import qualified Data.Aeson.KeyMap as KM
-import qualified Data.Text as Text
+import API.Galley qualified as Public
+import API.GalleyInternal qualified as Internal
+import Data.Aeson qualified as A
+import Data.Aeson.KeyMap qualified as KM
+import Data.Text qualified as Text
import Notifications
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/Federation.hs b/integration/test/Test/Federation.hs
index e06a084a4d..7474a3d606 100644
--- a/integration/test/Test/Federation.hs
+++ b/integration/test/Test/Federation.hs
@@ -19,17 +19,17 @@
module Test.Federation where
-import qualified API.Brig as BrigP
+import API.Brig qualified as BrigP
import API.Galley
import Control.Lens
import Control.Monad.Codensity
import Control.Monad.Reader
-import qualified Data.ProtoLens as Proto
+import Data.ProtoLens qualified as Proto
import Data.ProtoLens.Labels ()
import Notifications
import Numeric.Lens
-import qualified Proto.Otr as Proto
-import qualified Proto.Otr_Fields as Proto
+import Proto.Otr qualified as Proto
+import Proto.Otr_Fields qualified as Proto
import SetupHelpers
import Testlib.Prelude
import Testlib.ResourcePool
diff --git a/integration/test/Test/Federator.hs b/integration/test/Test/Federator.hs
index 5fd237ca88..95a3a5e487 100644
--- a/integration/test/Test/Federator.hs
+++ b/integration/test/Test/Federator.hs
@@ -22,7 +22,7 @@ module Test.Federator where
import API.Brig
import API.Federator (getMetrics)
import Data.Attoparsec.Text
-import qualified Data.ByteString as BS
+import Data.ByteString qualified as BS
import Data.String.Conversions
import Data.Text
import SetupHelpers (randomUser)
diff --git a/integration/test/Test/LegalHold.hs b/integration/test/Test/LegalHold.hs
index 7da2c2dfa2..4bc884a25b 100644
--- a/integration/test/Test/LegalHold.hs
+++ b/integration/test/Test/LegalHold.hs
@@ -18,7 +18,7 @@ module Test.LegalHold where
import API.Brig
import API.BrigCommon as BrigC
-import qualified API.BrigInternal as BrigI
+import API.BrigInternal qualified as BrigI
import API.Common
import API.Galley
import API.GalleyInternal hiding (getConversation)
@@ -28,21 +28,21 @@ import Control.Monad.Extra (findM)
import Control.Monad.Reader (asks, local)
import Control.Monad.Trans.Class (lift)
import Data.Aeson.Lens
-import qualified Data.ByteString.Char8 as BS8
+import Data.ByteString.Char8 qualified as BS8
import Data.ByteString.Lazy (LazyByteString)
import Data.List.Extra (trim)
-import qualified Data.Map as Map
-import qualified Data.ProtoLens as Proto
+import Data.Map qualified as Map
+import Data.ProtoLens qualified as Proto
import Data.ProtoLens.Labels ()
-import qualified Data.Set as Set
-import qualified Data.Text as T
+import Data.Set qualified as Set
+import Data.Text qualified as T
import GHC.Stack
import MLS.Util
import Network.Wai (Request (pathInfo, requestMethod))
import Notifications
import Numeric.Lens (hex)
-import qualified Proto.Otr as Proto
-import qualified Proto.Otr_Fields as Proto
+import Proto.Otr qualified as Proto
+import Proto.Otr_Fields qualified as Proto
import SetupHelpers
import Testlib.MockIntegrationService
import Testlib.Prekeys
diff --git a/integration/test/Test/Login.hs b/integration/test/Test/Login.hs
index fad75b4f86..b71d852a8c 100644
--- a/integration/test/Test/Login.hs
+++ b/integration/test/Test/Login.hs
@@ -24,7 +24,7 @@ import API.Common (defPassword)
import API.GalleyInternal
import API.Nginz (login, loginWith2ndFactor)
import Control.Concurrent (threadDelay)
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import SetupHelpers
import Testlib.Prelude
import Text.Printf (printf)
diff --git a/integration/test/Test/MLS.hs b/integration/test/Test/MLS.hs
index 3d76fd7ff3..131b35955d 100644
--- a/integration/test/Test/MLS.hs
+++ b/integration/test/Test/MLS.hs
@@ -21,16 +21,16 @@ module Test.MLS where
import API.Brig (claimKeyPackages, deleteClient)
import API.Galley
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import Data.Bits
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Base64 as Base64
-import qualified Data.ByteString.Char8 as B8
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
-import qualified Data.Text.Read as T
+import Data.ByteString qualified as B
+import Data.ByteString.Base64 qualified as Base64
+import Data.ByteString.Char8 qualified as B8
+import Data.Map qualified as Map
+import Data.Set qualified as Set
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
+import Data.Text.Read qualified as T
import MLS.Util
import Notifications
import SetupHelpers
diff --git a/integration/test/Test/MLS/Clients.hs b/integration/test/Test/MLS/Clients.hs
index 906ae91c37..fd757cc0d3 100644
--- a/integration/test/Test/MLS/Clients.hs
+++ b/integration/test/Test/MLS/Clients.hs
@@ -17,7 +17,7 @@
module Test.MLS.Clients where
-import qualified API.BrigInternal as I
+import API.BrigInternal qualified as I
import MLS.Util
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/MLS/Keys.hs b/integration/test/Test/MLS/Keys.hs
index e1faaebea1..88c64a3728 100644
--- a/integration/test/Test/MLS/Keys.hs
+++ b/integration/test/Test/MLS/Keys.hs
@@ -18,9 +18,9 @@
module Test.MLS.Keys where
import API.Galley
-import qualified Data.ByteString.Base64 as B64
-import qualified Data.ByteString.Base64.URL as B64U
-import qualified Data.ByteString.Char8 as B8
+import Data.ByteString.Base64 qualified as B64
+import Data.ByteString.Base64.URL qualified as B64U
+import Data.ByteString.Char8 qualified as B8
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/MLS/One2One.hs b/integration/test/Test/MLS/One2One.hs
index 07871cfd74..f994cf1cbb 100644
--- a/integration/test/Test/MLS/One2One.hs
+++ b/integration/test/Test/MLS/One2One.hs
@@ -21,12 +21,12 @@ import API.Brig
import API.Galley
import Control.Concurrent.Async
import Control.Concurrent.MVar
-import qualified Data.ByteString.Base64 as Base64
-import qualified Data.ByteString.Char8 as B8
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import qualified Data.Text as T
-import qualified Data.Text.Read as T
+import Data.ByteString.Base64 qualified as Base64
+import Data.ByteString.Char8 qualified as B8
+import Data.Map qualified as Map
+import Data.Set qualified as Set
+import Data.Text qualified as T
+import Data.Text.Read qualified as T
import MLS.Util
import Notifications
import SetupHelpers
diff --git a/integration/test/Test/MLS/SubConversation.hs b/integration/test/Test/MLS/SubConversation.hs
index 2067826828..0426291edc 100644
--- a/integration/test/Test/MLS/SubConversation.hs
+++ b/integration/test/Test/MLS/SubConversation.hs
@@ -20,8 +20,8 @@ module Test.MLS.SubConversation where
import API.Galley
import Control.Monad.Trans (lift)
import Control.Monad.Trans.Maybe (MaybeT (runMaybeT))
-import qualified Data.Map as Map
-import qualified Data.Set as Set
+import Data.Map qualified as Map
+import Data.Set qualified as Set
import MLS.Util
import Notifications
import SetupHelpers
diff --git a/integration/test/Test/NginxZAuthModule.hs b/integration/test/Test/NginxZAuthModule.hs
index bfedc87ebc..9ebc643e8a 100644
--- a/integration/test/Test/NginxZAuthModule.hs
+++ b/integration/test/Test/NginxZAuthModule.hs
@@ -21,15 +21,15 @@ import API.Brig
import API.Common
import Control.Monad.Codensity
import Control.Monad.Reader
-import qualified Data.ByteString as BS
+import Data.ByteString qualified as BS
import Data.List.Extra
import Data.Streaming.Network
import Data.UnixTime
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Network.HTTP.Types
import Network.Socket (Socket)
-import qualified Network.Socket as NS
-import qualified Network.Socket.ByteString as NSB
+import Network.Socket qualified as NS
+import Network.Socket.ByteString qualified as NSB
import SetupHelpers
import System.FilePath ((>))
import System.IO (writeFile)
@@ -40,7 +40,7 @@ import Testlib.Prelude
import Text.RawString.QQ
import UnliftIO (bracket)
import UnliftIO.Async (async, waitBoth)
-import qualified UnliftIO.Async as Async
+import UnliftIO.Async qualified as Async
import UnliftIO.Directory
import UnliftIO.Process
import UnliftIO.Timeout (timeout)
diff --git a/integration/test/Test/Property.hs b/integration/test/Test/Property.hs
index 984ec670d9..1f09c90914 100644
--- a/integration/test/Test/Property.hs
+++ b/integration/test/Test/Property.hs
@@ -19,7 +19,7 @@ module Test.Property where
import API.Brig
import API.Common
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/Provider.hs b/integration/test/Test/Provider.hs
index f244afb362..8f6c907b72 100644
--- a/integration/test/Test/Provider.hs
+++ b/integration/test/Test/Provider.hs
@@ -19,9 +19,9 @@ module Test.Provider where
import API.Brig
import API.BrigInternal
-import qualified API.Cargohold as Cargohold
+import API.Cargohold qualified as Cargohold
import API.Common
-import qualified API.Nginz as Nginz
+import API.Nginz qualified as Nginz
import Data.String.Conversions (cs)
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/Proxy.hs b/integration/test/Test/Proxy.hs
index 6dfb97827d..5ae324885d 100644
--- a/integration/test/Test/Proxy.hs
+++ b/integration/test/Test/Proxy.hs
@@ -22,11 +22,11 @@ module Test.Proxy where
import API.Proxy
import Control.Monad.Codensity
import Control.Monad.Reader
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
import Data.CaseInsensitive
import Data.String.Conversions
import Network.HTTP.Types (hLocation)
-import qualified Network.Wai as Wai
+import Network.Wai qualified as Wai
import Servant
import Testlib.Mock
import Testlib.Prelude
diff --git a/integration/test/Test/Search.hs b/integration/test/Test/Search.hs
index 00fdc841c3..1a2798659b 100644
--- a/integration/test/Test/Search.hs
+++ b/integration/test/Test/Search.hs
@@ -19,14 +19,14 @@
module Test.Search where
-import qualified API.Brig as BrigP
-import qualified API.BrigInternal as BrigI
+import API.Brig qualified as BrigP
+import API.BrigInternal qualified as BrigI
import API.Common (defPassword)
-import qualified API.Common as API
+import API.Common qualified as API
import API.Galley
-import qualified API.Galley as Galley
-import qualified API.GalleyInternal as GalleyI
-import qualified Data.Set as Set
+import API.Galley qualified as Galley
+import API.GalleyInternal qualified as GalleyI
+import Data.Set qualified as Set
import GHC.Stack
import SetupHelpers
import Testlib.Assertions
diff --git a/integration/test/Test/Spar.hs b/integration/test/Test/Spar.hs
index b6df2edae7..c305236ad8 100644
--- a/integration/test/Test/Spar.hs
+++ b/integration/test/Test/Spar.hs
@@ -27,16 +27,16 @@ import API.Spar
import API.SparInternal
import Control.Concurrent (threadDelay)
import Control.Lens (to, (^.))
-import qualified Data.Aeson as A
-import qualified Data.Aeson.KeyMap as KeyMap
-import qualified Data.Aeson.Types as A
-import qualified Data.CaseInsensitive as CI
+import Data.Aeson qualified as A
+import Data.Aeson.KeyMap qualified as KeyMap
+import Data.Aeson.Types qualified as A
+import Data.CaseInsensitive qualified as CI
import Data.String.Conversions (cs)
-import qualified Data.Text as ST
-import qualified SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.Test.MockResponse as SAML
-import qualified SAML2.WebSSO.Test.Util as SAML
-import qualified SAML2.WebSSO.XML as SAMLXML
+import Data.Text qualified as ST
+import SAML2.WebSSO qualified as SAML
+import SAML2.WebSSO.Test.MockResponse qualified as SAML
+import SAML2.WebSSO.Test.Util qualified as SAML
+import SAML2.WebSSO.XML qualified as SAMLXML
import SetupHelpers
import Testlib.JSON
import Testlib.PTest
diff --git a/integration/test/Test/Spar/MultiIngressIdp.hs b/integration/test/Test/Spar/MultiIngressIdp.hs
index 8294782cb4..76e0e02a71 100644
--- a/integration/test/Test/Spar/MultiIngressIdp.hs
+++ b/integration/test/Test/Spar/MultiIngressIdp.hs
@@ -3,8 +3,8 @@ module Test.Spar.MultiIngressIdp where
import API.GalleyInternal
import API.Spar
import Control.Lens ((.~), (^.))
-import qualified SAML2.WebSSO.Test.Util as SAML
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Test.Util qualified as SAML
+import SAML2.WebSSO.Types qualified as SAML
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Test/Spar/MultiIngressSSO.hs b/integration/test/Test/Spar/MultiIngressSSO.hs
index 0f5829e666..a39838483c 100644
--- a/integration/test/Test/Spar/MultiIngressSSO.hs
+++ b/integration/test/Test/Spar/MultiIngressSSO.hs
@@ -24,16 +24,16 @@ import API.Spar
import Control.Arrow ((>>>))
import Data.ByteString.Base64
import Data.String.Conversions (cs)
-import qualified Data.Text as T
-import qualified Data.UUID as UUID
+import Data.Text qualified as T
+import Data.UUID qualified as UUID
import GHC.Stack
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import SetupHelpers
-import qualified Testlib.KleisliXML as KXML
+import Testlib.KleisliXML qualified as KXML
import Testlib.Prelude
-import qualified Text.XML as XML
-import qualified Text.XML.Cursor as XML
-import qualified Text.XML.DSig as SAML
+import Text.XML qualified as XML
+import Text.XML.Cursor qualified as XML
+import Text.XML.DSig qualified as SAML
-- | Test multi-ingress SSO with an IdP that is not bound to a domain.
--
diff --git a/integration/test/Test/Spar/STM.hs b/integration/test/Test/Spar/STM.hs
index cbf8fb0c3a..791cd0e398 100644
--- a/integration/test/Test/Spar/STM.hs
+++ b/integration/test/Test/Spar/STM.hs
@@ -15,12 +15,12 @@ import API.GalleyInternal (setTeamFeatureStatus)
import API.Nginz (login)
import API.Spar
import Control.Retry
-import qualified Data.Map as Map
-import qualified SAML2.WebSSO as SAML
+import Data.Map qualified as Map
+import SAML2.WebSSO qualified as SAML
import SetupHelpers
import Testlib.JSON
import Testlib.Prelude
-import qualified Text.XML.DSig as SAML
+import Text.XML.DSig qualified as SAML
-- | This is a bit silly, but it allows us to write more straight-forward code and still get
-- better error messages than "something went wrong in your code, please try again".
diff --git a/integration/test/Test/Swagger.hs b/integration/test/Test/Swagger.hs
index 6b64f9bb92..7fdd4f9cfe 100644
--- a/integration/test/Test/Swagger.hs
+++ b/integration/test/Test/Swagger.hs
@@ -17,9 +17,9 @@
module Test.Swagger where
-import qualified API.Brig as BrigP
-import qualified Data.ByteString as B
-import qualified Data.Set as Set
+import API.Brig qualified as BrigP
+import Data.ByteString qualified as B
+import Data.Set qualified as Set
import Data.String.Conversions
import GHC.Stack
import System.Exit
diff --git a/integration/test/Test/TeamCollaborators.hs b/integration/test/Test/TeamCollaborators.hs
index 2ce699cb9c..516809b915 100644
--- a/integration/test/Test/TeamCollaborators.hs
+++ b/integration/test/Test/TeamCollaborators.hs
@@ -19,7 +19,7 @@ module Test.TeamCollaborators where
import API.Brig
import API.Galley
-import qualified API.GalleyInternal as Internal
+import API.GalleyInternal qualified as Internal
import Data.Tuple.Extra
import Notifications (isConvLeaveNotif, isTeamCollaboratorAddedNotif, isTeamCollaboratorRemovedNotif, isTeamMemberLeaveNotif)
import SetupHelpers
diff --git a/integration/test/Test/Teams.hs b/integration/test/Test/Teams.hs
index 0066ef7017..a1cd3c8373 100644
--- a/integration/test/Test/Teams.hs
+++ b/integration/test/Test/Teams.hs
@@ -19,19 +19,19 @@
module Test.Teams where
import API.Brig
-import qualified API.BrigInternal as I
+import API.BrigInternal qualified as I
import API.Common
import API.Galley (deleteTeamMember, getTeam, getTeamMembers, getTeamMembersCsv, getTeamNotifications)
import API.GalleyInternal (selectTeamMembers)
-import qualified API.GalleyInternal as I
+import API.GalleyInternal qualified as I
import API.Gundeck
-import qualified API.Nginz as Nginz
+import API.Nginz qualified as Nginz
import Control.Monad.Codensity (Codensity (runCodensity))
import Control.Monad.Extra (findM)
import Control.Monad.Reader (asks)
-import qualified Data.ByteString.Char8 as B8
-import qualified Data.Map as Map
-import qualified Data.Set as Set
+import Data.ByteString.Char8 qualified as B8
+import Data.Map qualified as Map
+import Data.Set qualified as Set
import Data.Time.Clock
import Data.Time.Format
import Notifications
diff --git a/integration/test/Test/User.hs b/integration/test/Test/User.hs
index 0c8ff60eba..689b454dd4 100644
--- a/integration/test/Test/User.hs
+++ b/integration/test/Test/User.hs
@@ -23,12 +23,12 @@ import API.Brig
import API.BrigInternal as I
import API.Common
import API.GalleyInternal
-import qualified API.Spar as Spar
+import API.Spar qualified as Spar
import Control.Monad.Codensity
import Control.Monad.Reader
-import qualified Data.Aeson as Aeson
-import qualified Data.UUID as UUID
-import qualified Data.UUID.V4 as UUID
+import Data.Aeson qualified as Aeson
+import Data.UUID qualified as UUID
+import Data.UUID.V4 qualified as UUID
import SetupHelpers
import Testlib.Prelude
import Testlib.ResourcePool
diff --git a/integration/test/Test/Version.hs b/integration/test/Test/Version.hs
index 12346b09b3..8ca21d9995 100644
--- a/integration/test/Test/Version.hs
+++ b/integration/test/Test/Version.hs
@@ -18,7 +18,7 @@
module Test.Version where
import API.Brig
-import qualified Data.Set as Set
+import Data.Set qualified as Set
import SetupHelpers
import Testlib.Prelude
diff --git a/integration/test/Testlib/App.hs b/integration/test/Testlib/App.hs
index d44523fcc9..75f417aae1 100644
--- a/integration/test/Testlib/App.hs
+++ b/integration/test/Testlib/App.hs
@@ -20,13 +20,13 @@ module Testlib.App where
import Control.Applicative ((<|>))
import Control.Monad.Reader
import Control.Monad.Trans.Maybe (MaybeT (MaybeT), runMaybeT)
-import qualified Control.Retry as Retry
+import Control.Retry qualified as Retry
import Data.Aeson hiding ((.=))
import Data.Bool (bool)
import Data.IORef
import Data.Maybe (isJust)
-import qualified Data.Text as T
-import qualified Data.Yaml as Yaml
+import Data.Text qualified as T
+import Data.Yaml qualified as Yaml
import GHC.Exception
import GHC.Generics (Generic)
import GHC.Stack (HasCallStack, callStack)
diff --git a/integration/test/Testlib/Assertions.hs b/integration/test/Testlib/Assertions.hs
index 1f620927ca..828e374e71 100644
--- a/integration/test/Testlib/Assertions.hs
+++ b/integration/test/Testlib/Assertions.hs
@@ -22,33 +22,33 @@ module Testlib.Assertions where
import Control.Applicative ((<|>))
import Control.Exception as E
import Control.Lens ((^?))
-import qualified Control.Lens.Plated as LP
+import Control.Lens.Plated qualified as LP
import Control.Monad
-import qualified Control.Monad.Catch as Catch
+import Control.Monad.Catch qualified as Catch
import Control.Monad.Reader
import Control.Retry
import Data.Aeson (Value)
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.Diff as AD
-import qualified Data.Aeson.Encode.Pretty as Aeson
-import qualified Data.Aeson.KeyMap as Aeson
+import Data.Aeson qualified as Aeson
+import Data.Aeson.Diff qualified as AD
+import Data.Aeson.Encode.Pretty qualified as Aeson
+import Data.Aeson.KeyMap qualified as Aeson
import Data.Aeson.Lens (_Array, _Object)
import Data.ByteString (ByteString)
-import qualified Data.ByteString.Base64 as B64
-import qualified Data.ByteString.Lazy as BS
+import Data.ByteString.Base64 qualified as B64
+import Data.ByteString.Lazy qualified as BS
import Data.Char
import Data.Foldable
import Data.Hex
import Data.List
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe (isJust, mapMaybe)
-import qualified Data.Text as Text
-import qualified Data.Text.Encoding as Text
-import qualified Data.Text.Encoding.Error as Text
-import qualified Data.Text.Lazy as TL
-import qualified Data.Text.Lazy.Encoding as TL
+import Data.Text qualified as Text
+import Data.Text.Encoding qualified as Text
+import Data.Text.Encoding.Error qualified as Text
+import Data.Text.Lazy qualified as TL
+import Data.Text.Lazy.Encoding qualified as TL
import GHC.Stack as Stack
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import System.FilePath
import Testlib.JSON
import Testlib.Printing
diff --git a/integration/test/Testlib/Cannon.hs b/integration/test/Testlib/Cannon.hs
index 45093c3e25..edd75cd172 100644
--- a/integration/test/Testlib/Cannon.hs
+++ b/integration/test/Testlib/Cannon.hs
@@ -46,10 +46,10 @@ import Control.Concurrent
import Control.Concurrent.Async
import Control.Concurrent.STM.TChan
import Control.Exception (throwIO)
-import qualified Control.Exception as E
+import Control.Exception qualified as E
import Control.Monad
import Control.Monad.Catch hiding (bracket)
-import qualified Control.Monad.Catch as Catch
+import Control.Monad.Catch qualified as Catch
import Control.Monad.IO.Class
import Control.Monad.Reader (asks)
import Control.Monad.STM
@@ -63,9 +63,9 @@ import Data.Traversable
import Data.Word
import GHC.Records
import GHC.Stack
-import qualified Network.HTTP.Client as HTTP
-import qualified Network.HTTP.Client as Http
-import qualified Network.WebSockets as WS
+import Network.HTTP.Client qualified as HTTP
+import Network.HTTP.Client qualified as Http
+import Network.WebSockets qualified as WS
import System.Random (randomIO)
import System.Timeout (timeout)
import Testlib.App
diff --git a/integration/test/Testlib/Certs.hs b/integration/test/Testlib/Certs.hs
index 69d7b9c59b..6117b3b258 100644
--- a/integration/test/Testlib/Certs.hs
+++ b/integration/test/Testlib/Certs.hs
@@ -18,8 +18,8 @@
module Testlib.Certs where
import Crypto.Hash.Algorithms (SHA256 (SHA256))
-import qualified Crypto.PubKey.RSA as RSA
-import qualified Crypto.PubKey.RSA.PKCS15 as PKCS15
+import Crypto.PubKey.RSA qualified as RSA
+import Crypto.PubKey.RSA.PKCS15 qualified as PKCS15
import Crypto.Store.PKCS8 (PrivateKeyFormat (PKCS8Format), keyToPEM)
import Crypto.Store.X509 (pubKeyToPEM)
import Data.ASN1.OID (OIDable (getObjectID))
diff --git a/integration/test/Testlib/Env.hs b/integration/test/Testlib/Env.hs
index 67a90228ad..a4e996c59d 100644
--- a/integration/test/Testlib/Env.hs
+++ b/integration/test/Testlib/Env.hs
@@ -20,7 +20,7 @@
module Testlib.Env where
import Control.Concurrent.MVar
-import qualified Control.Exception as E
+import Control.Exception qualified as E
import Control.Monad.Codensity
import Control.Monad.IO.Class
import Control.Monad.Reader
@@ -28,14 +28,14 @@ import Data.Foldable
import Data.Function ((&))
import Data.Functor
import Data.IORef
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe (fromMaybe)
import Data.Traversable (for)
-import qualified Data.Yaml as Yaml
-import qualified Database.CQL.IO as Cassandra
+import Data.Yaml qualified as Yaml
+import Database.CQL.IO qualified as Cassandra
import GHC.Stack
-import qualified Network.HTTP.Client as HTTP
-import qualified OpenSSL.Session as OpenSSL
+import Network.HTTP.Client qualified as HTTP
+import OpenSSL.Session qualified as OpenSSL
import System.Directory
import System.Environment (lookupEnv)
import System.Exit
diff --git a/integration/test/Testlib/HTTP.hs b/integration/test/Testlib/HTTP.hs
index ba48bb6709..0278196eb8 100644
--- a/integration/test/Testlib/HTTP.hs
+++ b/integration/test/Testlib/HTTP.hs
@@ -17,30 +17,30 @@
module Testlib.HTTP where
-import qualified Control.Exception as E
+import Control.Exception qualified as E
import Control.Monad.Reader
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.Types as Aeson
+import Data.Aeson qualified as Aeson
+import Data.Aeson.Types qualified as Aeson
import Data.Bifunctor (Bifunctor (bimap))
import Data.ByteString (ByteString)
-import qualified Data.ByteString.Char8 as C8
-import qualified Data.ByteString.Lazy as L
-import qualified Data.CaseInsensitive as CI
+import Data.ByteString.Char8 qualified as C8
+import Data.ByteString.Lazy qualified as L
+import Data.CaseInsensitive qualified as CI
import Data.Function
import Data.List
import Data.List.Split (splitOn)
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe
import Data.String
import Data.String.Conversions (cs)
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
import Data.Tuple.Extra
import GHC.Generics
import GHC.Stack
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Network.HTTP.Types (hContentLength, hLocation)
-import qualified Network.HTTP.Types as HTTP
+import Network.HTTP.Types qualified as HTTP
import Network.HTTP.Types.URI (parseQuery)
import Network.URI (URI (..), URIAuth (..), parseURI)
import Testlib.Assertions
diff --git a/integration/test/Testlib/JSON.hs b/integration/test/Testlib/JSON.hs
index d7688a7a0f..ef3142de6a 100644
--- a/integration/test/Testlib/JSON.hs
+++ b/integration/test/Testlib/JSON.hs
@@ -23,26 +23,26 @@ import Control.Monad.IO.Class
import Control.Monad.Trans.Class
import Control.Monad.Trans.Maybe
import Data.Aeson hiding ((.=))
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.Encode.Pretty as Aeson
-import qualified Data.Aeson.Key as KM
-import qualified Data.Aeson.KeyMap as KM
-import qualified Data.Aeson.Types as Aeson
+import Data.Aeson qualified as Aeson
+import Data.Aeson.Encode.Pretty qualified as Aeson
+import Data.Aeson.Key qualified as KM
+import Data.Aeson.KeyMap qualified as KM
+import Data.Aeson.Types qualified as Aeson
import Data.ByteString (ByteString)
-import qualified Data.ByteString.Base64 as Base64
-import qualified Data.ByteString.Lazy.Char8 as LC8
+import Data.ByteString.Base64 qualified as Base64
+import Data.ByteString.Lazy.Char8 qualified as LC8
import Data.Foldable
import Data.Function
import Data.Functor
import Data.List.Split (splitOn)
import Data.Maybe (fromMaybe)
-import qualified Data.Scientific as Sci
-import qualified Data.Set as Set
+import Data.Scientific qualified as Sci
+import Data.Set qualified as Set
import Data.String
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
import Data.Vector ((!?))
-import qualified Data.Vector as V
+import Data.Vector qualified as V
import GHC.Stack
import Testlib.Types
import Prelude
diff --git a/integration/test/Testlib/KleisliXML.hs b/integration/test/Testlib/KleisliXML.hs
index d201f9471e..be903e0c54 100644
--- a/integration/test/Testlib/KleisliXML.hs
+++ b/integration/test/Testlib/KleisliXML.hs
@@ -2,11 +2,11 @@
-- structures.
module Testlib.KleisliXML where
-import qualified Data.Text as T
-import qualified Data.Text.Lazy as LT
+import Data.Text qualified as T
+import Data.Text.Lazy qualified as LT
import Testlib.Prelude
-import qualified Text.XML as XML
-import qualified Text.XML.Cursor as XML
+import Text.XML qualified as XML
+import Text.XML.Cursor qualified as XML
findElement :: XML.Name -> XML.Cursor -> Maybe XML.Cursor
findElement name = listToMaybe . (XML.$// XML.element name)
diff --git a/integration/test/Testlib/Mock.hs b/integration/test/Testlib/Mock.hs
index 463779f7be..59c69d3d5b 100644
--- a/integration/test/Testlib/Mock.hs
+++ b/integration/test/Testlib/Mock.hs
@@ -24,10 +24,10 @@ import Control.Exception
import Control.Monad.Codensity
import Control.Monad.Reader
import Data.Streaming.Network
-import qualified Network.Socket as Socket
-import qualified Network.Wai as Wai
-import qualified Network.Wai.Handler.Warp as Warp
-import qualified Network.Wai.Handler.WarpTLS as Warp
+import Network.Socket qualified as Socket
+import Network.Wai qualified as Wai
+import Network.Wai.Handler.Warp qualified as Warp
+import Network.Wai.Handler.WarpTLS qualified as Warp
import Testlib.Prelude
codensityApp :: (Wai.Request -> Codensity IO Wai.Response) -> Wai.Application
diff --git a/integration/test/Testlib/MockIntegrationService.hs b/integration/test/Testlib/MockIntegrationService.hs
index 71dc2477cd..3e9b3cfb4c 100644
--- a/integration/test/Testlib/MockIntegrationService.hs
+++ b/integration/test/Testlib/MockIntegrationService.hs
@@ -34,16 +34,16 @@ where
import Control.Monad.Catch
import Control.Monad.Reader
import qualified Data.Aeson
-import qualified Data.ByteString.Lazy as LBS
+import Data.ByteString.Lazy qualified as LBS
import Data.Streaming.Network
import Data.String.Conversions (cs)
import Network.HTTP.Types
import Network.Socket
-import qualified Network.Socket as Socket
+import Network.Socket qualified as Socket
import Network.Wai as Wai
-import qualified Network.Wai.Handler.Warp as Warp
-import qualified Network.Wai.Handler.Warp.Internal as Warp
-import qualified Network.Wai.Handler.WarpTLS as Warp
+import Network.Wai.Handler.Warp qualified as Warp
+import Network.Wai.Handler.Warp.Internal qualified as Warp
+import Network.Wai.Handler.WarpTLS qualified as Warp
import Testlib.Prelude hiding (IntegrationConfig (integrationTestHostName))
import UnliftIO (MonadUnliftIO (withRunInIO))
import UnliftIO.Async
diff --git a/integration/test/Testlib/ModService.hs b/integration/test/Testlib/ModService.hs
index e111bcb76b..0e9e5717e2 100644
--- a/integration/test/Testlib/ModService.hs
+++ b/integration/test/Testlib/ModService.hs
@@ -31,39 +31,39 @@ where
import Control.Applicative
import Control.Concurrent
import Control.Concurrent.Async
-import qualified Control.Exception as E
+import Control.Exception qualified as E
import Control.Monad.Catch (catch, throwM)
import Control.Monad.Codensity
import Control.Monad.Extra
import Control.Monad.Reader
import Control.Retry (fibonacciBackoff, limitRetriesByCumulativeDelay, retrying)
import Data.Aeson hiding ((.=))
-import qualified Data.Attoparsec.Text as Parser
-import qualified Data.Char as Char
+import Data.Attoparsec.Text qualified as Parser
+import Data.Char qualified as Char
import Data.Default
import Data.Foldable
import Data.Function
import Data.Functor
import Data.IORef
-import qualified Data.List as List
+import Data.List qualified as List
import Data.Maybe
import Data.Monoid
import Data.String
import Data.String.Conversions (cs)
import Data.String.Interpolate
-import qualified Data.Text as Text
-import qualified Data.Text.IO as Text
+import Data.Text qualified as Text
+import Data.Text.IO qualified as Text
import Data.Traversable
import Data.Word
-import qualified Data.Yaml as Yaml
+import Data.Yaml qualified as Yaml
import GHC.Stack
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import System.Directory (copyFile, createDirectoryIfMissing, doesDirectoryExist, doesFileExist, listDirectory, removeDirectoryRecursive, removeFile)
import System.Exit
import System.FilePath
import System.IO
import System.IO.Temp (createTempDirectory, writeTempFile)
-import qualified System.Linux.Proc as LinuxProc
+import System.Linux.Proc qualified as LinuxProc
import System.Posix (keyboardSignal, killProcess, signalProcess)
import System.Posix.Types
import System.Process
diff --git a/integration/test/Testlib/One2One.hs b/integration/test/Testlib/One2One.hs
index 41cacb4949..80bff42184 100644
--- a/integration/test/Testlib/One2One.hs
+++ b/integration/test/Testlib/One2One.hs
@@ -20,13 +20,13 @@
module Testlib.One2One (generateRemoteAndConvIdWithDomain) where
import Control.Error (atMay)
-import qualified Crypto.Hash as Crypto
+import Crypto.Hash qualified as Crypto
import Data.Bits
import Data.ByteArray (convert)
import Data.ByteString
-import qualified Data.ByteString as B
+import Data.ByteString qualified as B
import Data.ByteString.Conversion
-import qualified Data.ByteString.Lazy as L
+import Data.ByteString.Lazy qualified as L
import Data.UUID as UUID
import SetupHelpers (randomUser)
import Testlib.Prelude
diff --git a/integration/test/Testlib/Prelude.hs b/integration/test/Testlib/Prelude.hs
index 552bee3475..5ded08c0b3 100644
--- a/integration/test/Testlib/Prelude.hs
+++ b/integration/test/Testlib/Prelude.hs
@@ -177,7 +177,7 @@ import Prelude
(^),
(^^),
)
-import qualified Prelude as P
+import Prelude qualified as P
----------------------------------------------------------------------------
-- Lifted functions from Prelude
diff --git a/integration/test/Testlib/ResourcePool.hs b/integration/test/Testlib/ResourcePool.hs
index 236803a5e7..293220e91f 100644
--- a/integration/test/Testlib/ResourcePool.hs
+++ b/integration/test/Testlib/ResourcePool.hs
@@ -35,7 +35,7 @@ import Control.Monad.IO.Class
import Data.Foldable (for_)
import Data.Functor
import Data.IORef
-import qualified Data.Set as Set
+import Data.Set qualified as Set
import Data.String
import Data.Tuple
import Database.CQL.IO
diff --git a/integration/test/Testlib/Run.hs b/integration/test/Testlib/Run.hs
index 1ae1ddf06d..7ed2b9e8a0 100644
--- a/integration/test/Testlib/Run.hs
+++ b/integration/test/Testlib/Run.hs
@@ -32,9 +32,9 @@ import Data.Maybe (fromMaybe)
import Data.String (IsString (fromString))
import Data.String.Conversions (cs)
import Data.Text (Text)
-import qualified Data.Text as T
+import Data.Text qualified as T
import Data.Time
-import qualified Data.Yaml as Yaml
+import Data.Yaml qualified as Yaml
import Network.AMQP.Extended
import Network.RabbitMqAdmin
import RunAllTests
diff --git a/integration/test/Testlib/Types.hs b/integration/test/Testlib/Types.hs
index 29aa0b2b4b..348150454d 100644
--- a/integration/test/Testlib/Types.hs
+++ b/integration/test/Testlib/Types.hs
@@ -33,33 +33,33 @@ import Control.Monad.Reader
import Control.Monad.Trans.Control
import Crypto.Random (MonadRandom (..))
import Data.Aeson
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import Data.ByteString (ByteString)
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Char8 as C8
-import qualified Data.ByteString.Lazy as L
-import qualified Data.CaseInsensitive as CI
+import Data.ByteString qualified as BS
+import Data.ByteString.Char8 qualified as C8
+import Data.ByteString.Lazy qualified as L
+import Data.CaseInsensitive qualified as CI
import Data.Char (toLower)
import Data.Default
import Data.Functor
import Data.IORef
import Data.List
import Data.Map
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Set (Set)
-import qualified Data.Set as Set
+import Data.Set qualified as Set
import Data.String
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
import Data.Time
import Data.Word
import GHC.Generics (Generic)
import GHC.Records
import GHC.Stack
-import qualified Network.AMQP as Q
+import Network.AMQP qualified as Q
import Network.AMQP.Extended
-import qualified Network.HTTP.Client as HTTP
-import qualified Network.HTTP.Types as HTTP
+import Network.HTTP.Client qualified as HTTP
+import Network.HTTP.Types qualified as HTTP
import Network.URI
import UnliftIO (MonadUnliftIO)
import Prelude
diff --git a/integration/test/Testlib/VersionedFed.hs b/integration/test/Testlib/VersionedFed.hs
index 34787ffe0a..1dffabb7d3 100644
--- a/integration/test/Testlib/VersionedFed.hs
+++ b/integration/test/Testlib/VersionedFed.hs
@@ -19,7 +19,7 @@ module Testlib.VersionedFed where
import Control.Monad.Reader
import Data.Proxy
-import qualified Data.Text as T
+import Data.Text qualified as T
import GHC.TypeLits
import System.Environment
import Testlib.PTest
diff --git a/integration/test/Testlib/XML.hs b/integration/test/Testlib/XML.hs
index ab6f25d382..a3ad2fa18a 100644
--- a/integration/test/Testlib/XML.hs
+++ b/integration/test/Testlib/XML.hs
@@ -17,12 +17,12 @@
module Testlib.XML where
-import qualified Data.Array as Array
+import Data.Array qualified as Array
import Data.Fixed
import Data.Time
import Testlib.Types
-import qualified Text.Regex.Base as Regex
-import qualified Text.Regex.TDFA.String as Regex
+import Text.Regex.Base qualified as Regex
+import Text.Regex.TDFA.String qualified as Regex
import Text.XML.Light
import Prelude
diff --git a/libs/hscim/server/Main.hs b/libs/hscim/server/Main.hs
index 3d21696c0e..6dabc8a070 100644
--- a/libs/hscim/server/Main.hs
+++ b/libs/hscim/server/Main.hs
@@ -23,7 +23,7 @@ import Control.Monad.STM (atomically)
import Data.Time
import Network.URI.Static
import Network.Wai.Handler.Warp
-import qualified StmContainers.Map as STMMap
+import StmContainers.Map qualified as STMMap
import Text.Email.Validate
import Web.Scim.Capabilities.MetaSchema as MetaSchema
import Web.Scim.Schema.Common as Common
diff --git a/libs/hscim/src/Web/Scim/AttrName.hs b/libs/hscim/src/Web/Scim/AttrName.hs
index c0bfdf9e13..dc1453afbe 100644
--- a/libs/hscim/src/Web/Scim/AttrName.hs
+++ b/libs/hscim/src/Web/Scim/AttrName.hs
@@ -22,7 +22,7 @@ module Web.Scim.AttrName where
import Data.Aeson.Types (FromJSONKey, ToJSONKey)
import Data.Attoparsec.ByteString.Char8
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Hashable
import Data.String (IsString, fromString)
import Data.Text (Text, cons)
diff --git a/libs/hscim/src/Web/Scim/Capabilities/MetaSchema.hs b/libs/hscim/src/Web/Scim/Capabilities/MetaSchema.hs
index 4bdaf265af..c812042f95 100644
--- a/libs/hscim/src/Web/Scim/Capabilities/MetaSchema.hs
+++ b/libs/hscim/src/Web/Scim/Capabilities/MetaSchema.hs
@@ -27,7 +27,7 @@ module Web.Scim.Capabilities.MetaSchema
where
import Data.Aeson
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.Text (Text)
import Data.Typeable (Typeable, cast)
import Servant hiding (URI)
@@ -40,7 +40,7 @@ import Web.Scim.Capabilities.MetaSchema.Schema
import Web.Scim.Capabilities.MetaSchema.User
import Web.Scim.ContentType
import Web.Scim.Handler
-import qualified Web.Scim.Schema.AuthenticationScheme as AuthScheme
+import Web.Scim.Schema.AuthenticationScheme qualified as AuthScheme
import Web.Scim.Schema.Common
import Web.Scim.Schema.Error hiding (schemas)
import Web.Scim.Schema.ListResponse as ListResponse hiding (schemas)
diff --git a/libs/hscim/src/Web/Scim/Class/Group.hs b/libs/hscim/src/Web/Scim/Class/Group.hs
index 943484696a..7aa5b8b632 100644
--- a/libs/hscim/src/Web/Scim/Class/Group.hs
+++ b/libs/hscim/src/Web/Scim/Class/Group.hs
@@ -29,7 +29,7 @@ module Web.Scim.Class.Group
where
import Data.Aeson
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import Data.Text
import Servant
import Servant.API.Generic
diff --git a/libs/hscim/src/Web/Scim/Client.hs b/libs/hscim/src/Web/Scim/Client.hs
index c80070fb03..919758a1b5 100644
--- a/libs/hscim/src/Web/Scim/Client.hs
+++ b/libs/hscim/src/Web/Scim/Client.hs
@@ -51,14 +51,14 @@ import Data.Text
import Servant.API
import Servant.Client
import Servant.Client.Generic
-import qualified Web.Scim.Capabilities.MetaSchema as MetaSchema
+import Web.Scim.Capabilities.MetaSchema qualified as MetaSchema
import Web.Scim.Class.Auth
import Web.Scim.Class.Group (Group, GroupId, StoredGroup)
import Web.Scim.Class.User (StoredUser)
import Web.Scim.Filter (Filter)
import Web.Scim.Schema.ListResponse (ListResponse)
import Web.Scim.Schema.PatchOp (PatchOp)
-import qualified Web.Scim.Schema.ResourceType as ResourceType
+import Web.Scim.Schema.ResourceType qualified as ResourceType
import Web.Scim.Schema.User (User)
import Web.Scim.Schema.UserTypes (UserExtra, UserId)
import Web.Scim.Server
diff --git a/libs/hscim/src/Web/Scim/Schema/Common.hs b/libs/hscim/src/Web/Scim/Schema/Common.hs
index c0adb84c21..eee5404114 100644
--- a/libs/hscim/src/Web/Scim/Schema/Common.hs
+++ b/libs/hscim/src/Web/Scim/Schema/Common.hs
@@ -23,14 +23,14 @@
module Web.Scim.Schema.Common where
import Data.Aeson
-import qualified Data.Aeson.Key as Key
-import qualified Data.Aeson.KeyMap as KeyMap
-import qualified Data.CaseInsensitive as CI
+import Data.Aeson.Key qualified as Key
+import Data.Aeson.KeyMap qualified as KeyMap
+import Data.CaseInsensitive qualified as CI
import Data.List (nub, (\\))
import Data.String.Conversions (cs)
import Data.Text (Text, pack, unpack)
-import qualified Data.Text as Text
-import qualified Network.URI as Network
+import Data.Text qualified as Text
+import Network.URI qualified as Network
data WithId id a = WithId
{ id :: id,
diff --git a/libs/hscim/src/Web/Scim/Schema/Error.hs b/libs/hscim/src/Web/Scim/Schema/Error.hs
index cd441b13b2..a2766adad7 100644
--- a/libs/hscim/src/Web/Scim/Schema/Error.hs
+++ b/libs/hscim/src/Web/Scim/Schema/Error.hs
@@ -40,11 +40,11 @@ import Control.Exception
import Data.Aeson hiding (Error)
import Data.ByteString.UTF8 (fromString)
import Data.Text (Text, pack)
-import qualified Data.Text.Lazy.Encoding as LText
+import Data.Text.Lazy.Encoding qualified as LText
import GHC.Generics (Generic)
-import qualified Network.HTTP.Types.Header as HTTP
-import qualified Network.HTTP.Types.Status as HTTP
-import qualified Network.Wai.Utilities.Error as Wai
+import Network.HTTP.Types.Header qualified as HTTP
+import Network.HTTP.Types.Status qualified as HTTP
+import Network.Wai.Utilities.Error qualified as Wai
import Servant (ServerError (..))
import Web.Scim.Schema.Common
import Web.Scim.Schema.Schema
diff --git a/libs/hscim/src/Web/Scim/Schema/Meta.hs b/libs/hscim/src/Web/Scim/Schema/Meta.hs
index 11439c94c6..3c2dd28a9a 100644
--- a/libs/hscim/src/Web/Scim/Schema/Meta.hs
+++ b/libs/hscim/src/Web/Scim/Schema/Meta.hs
@@ -18,9 +18,9 @@
module Web.Scim.Schema.Meta where
import Data.Aeson
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.Text (Text, pack, unpack)
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import Data.Time.Clock
import GHC.Generics (Generic)
import Text.Read (readEither)
diff --git a/libs/hscim/src/Web/Scim/Schema/PatchOp.hs b/libs/hscim/src/Web/Scim/Schema/PatchOp.hs
index 1ac01c3b16..a437a39914 100644
--- a/libs/hscim/src/Web/Scim/Schema/PatchOp.hs
+++ b/libs/hscim/src/Web/Scim/Schema/PatchOp.hs
@@ -20,13 +20,13 @@ module Web.Scim.Schema.PatchOp where
import Control.Applicative
import Control.Monad (guard)
import Control.Monad.Except
-import qualified Data.Aeson.Key as Key
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson.Key qualified as Key
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.Aeson.Types (FromJSON (parseJSON), ToJSON (toJSON), Value (String), object, withObject, withText, (.:), (.:?), (.=))
-import qualified Data.Aeson.Types as Aeson
+import Data.Aeson.Types qualified as Aeson
import Data.Attoparsec.ByteString (Parser, endOfInput, parseOnly)
import Data.Bifunctor (first)
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Text (Text)
import Data.Text.Encoding (encodeUtf8)
import Web.Scim.AttrName (AttrName (..))
diff --git a/libs/hscim/src/Web/Scim/Schema/Schema.hs b/libs/hscim/src/Web/Scim/Schema/Schema.hs
index d7ae67016c..01cf81d75d 100644
--- a/libs/hscim/src/Web/Scim/Schema/Schema.hs
+++ b/libs/hscim/src/Web/Scim/Schema/Schema.hs
@@ -19,7 +19,7 @@ module Web.Scim.Schema.Schema where
import Data.Aeson (FromJSON, ToJSON, Value, parseJSON, toJSON, withText)
import Data.Attoparsec.ByteString (Parser)
-import qualified Data.Attoparsec.ByteString.Char8 as Parser
+import Data.Attoparsec.ByteString.Char8 qualified as Parser
import Data.Text (Text)
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
import Web.Scim.Capabilities.MetaSchema.Group
diff --git a/libs/hscim/src/Web/Scim/Schema/User.hs b/libs/hscim/src/Web/Scim/Schema/User.hs
index 1a37f6dae6..48af70ff9d 100644
--- a/libs/hscim/src/Web/Scim/Schema/User.hs
+++ b/libs/hscim/src/Web/Scim/Schema/User.hs
@@ -74,11 +74,11 @@ where
import Control.Monad
import Control.Monad.Except
import Data.Aeson
-import qualified Data.Aeson.Key as Key
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson.Key qualified as Key
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.List ((\\))
import Data.Text (Text, pack)
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import GHC.Generics (Generic)
import Lens.Micro
import Web.Scim.AttrName
diff --git a/libs/hscim/src/Web/Scim/Schema/User/Email.hs b/libs/hscim/src/Web/Scim/Schema/User/Email.hs
index cd52a80a7e..3a533b6776 100644
--- a/libs/hscim/src/Web/Scim/Schema/User/Email.hs
+++ b/libs/hscim/src/Web/Scim/Schema/User/Email.hs
@@ -22,7 +22,7 @@ import Data.Aeson
import Data.Text hiding (dropWhile)
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
import GHC.Generics (Generic)
-import qualified Text.Email.Validate as Email
+import Text.Email.Validate qualified as Email
import Web.Scim.Schema.Common hiding (value)
newtype EmailAddress = EmailAddress
diff --git a/libs/hscim/src/Web/Scim/Server/Mock.hs b/libs/hscim/src/Web/Scim/Server/Mock.hs
index eb2dc9ce5e..af6abd1236 100644
--- a/libs/hscim/src/Web/Scim/Server/Mock.hs
+++ b/libs/hscim/src/Web/Scim/Server/Mock.hs
@@ -28,16 +28,16 @@ import Control.Monad.Morph
import Control.Monad.Reader
import Control.Monad.STM (STM, atomically)
import Data.Aeson
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Hashable
import Data.Text (Text, pack)
import Data.Time.Calendar
import Data.Time.Clock
import GHC.Exts (sortWith)
import ListT
-import qualified Network.URI as URI
+import Network.URI qualified as URI
import Servant
-import qualified StmContainers.Map as STMMap
+import StmContainers.Map qualified as STMMap
import Text.Read (readMaybe)
import Web.Scim.Class.Auth
import Web.Scim.Class.Group hiding (value)
@@ -45,7 +45,7 @@ import Web.Scim.Class.User
import Web.Scim.Filter (AttrPath (..), CompValue (..), Filter (..), compareStr)
import Web.Scim.Handler
import Web.Scim.Schema.Common (WithId (WithId, value))
-import qualified Web.Scim.Schema.Common as Common
+import Web.Scim.Schema.Common qualified as Common
import Web.Scim.Schema.Error
import Web.Scim.Schema.ListResponse
import Web.Scim.Schema.Meta
diff --git a/libs/hscim/src/Web/Scim/Test/Acceptance.hs b/libs/hscim/src/Web/Scim/Test/Acceptance.hs
index e5bb3b995c..5788298f6e 100644
--- a/libs/hscim/src/Web/Scim/Test/Acceptance.hs
+++ b/libs/hscim/src/Web/Scim/Test/Acceptance.hs
@@ -28,9 +28,9 @@ module Web.Scim.Test.Acceptance
where
import Control.Monad.IO.Class (liftIO)
-import qualified Data.Aeson as Aeson
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Lazy as L
+import Data.Aeson qualified as Aeson
+import Data.ByteString qualified as BS
+import Data.ByteString.Lazy qualified as L
import Data.String.Conversions (cs)
import Data.Text (Text)
import Network.HTTP.Types.Status
@@ -41,7 +41,7 @@ import Test.Hspec.Wai (matchStatus)
import Test.Hspec.Wai.Internal (runWaiSession)
import Web.Scim.Class.User
import Web.Scim.Schema.Common as Hscim
-import qualified Web.Scim.Schema.ListResponse as ListResponse
+import Web.Scim.Schema.ListResponse qualified as ListResponse
import Web.Scim.Schema.Meta
import Web.Scim.Schema.UserTypes
import Web.Scim.Test.Util
diff --git a/libs/hscim/src/Web/Scim/Test/Util.hs b/libs/hscim/src/Web/Scim/Test/Util.hs
index da75b438a4..069541051b 100644
--- a/libs/hscim/src/Web/Scim/Test/Util.hs
+++ b/libs/hscim/src/Web/Scim/Test/Util.hs
@@ -51,16 +51,16 @@ module Web.Scim.Test.Util
)
where
-import qualified Control.Retry as Retry
+import Control.Retry qualified as Retry
import Data.Aeson
-import qualified Data.Aeson.Key as Key
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson.Key qualified as Key
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.Aeson.QQ
import Data.Aeson.Types (JSONPathElement (Key))
import Data.ByteString (ByteString)
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Char8 as BS8
-import qualified Data.ByteString.Lazy as L
+import Data.ByteString qualified as BS
+import Data.ByteString.Char8 qualified as BS8
+import Data.ByteString.Lazy qualified as L
import Data.Proxy
import Data.Text
import Data.UUID as UUID
diff --git a/libs/hscim/test/Test/Capabilities/MetaSchemaSpec.hs b/libs/hscim/test/Test/Capabilities/MetaSchemaSpec.hs
index ec456f4d8e..6b627b54df 100644
--- a/libs/hscim/test/Test/Capabilities/MetaSchemaSpec.hs
+++ b/libs/hscim/test/Test/Capabilities/MetaSchemaSpec.hs
@@ -24,12 +24,12 @@ where
import Data.Aeson
import Data.Coerce
-import qualified Data.List as List
+import Data.List qualified as List
import Data.Text (Text)
import Network.Wai.Test (SResponse (..))
import Servant
import Test.Hspec hiding (shouldSatisfy)
-import qualified Test.Hspec.Expectations as Expect
+import Test.Hspec.Expectations qualified as Expect
import Test.Hspec.Wai hiding (patch, post, put, shouldRespondWith)
import Web.Scim.Capabilities.MetaSchema
import Web.Scim.Server (ConfigAPI, mkapp)
diff --git a/libs/hscim/test/Test/Class/AuthSpec.hs b/libs/hscim/test/Test/Class/AuthSpec.hs
index 9f5b063271..1604cbf2e0 100644
--- a/libs/hscim/test/Test/Class/AuthSpec.hs
+++ b/libs/hscim/test/Test/Class/AuthSpec.hs
@@ -24,7 +24,7 @@ import Data.Text (Text)
import Data.Text.Encoding
import Network.HTTP.Types.Header
import Network.HTTP.Types.Method (methodGet)
-import qualified StmContainers.Map as STMMap
+import StmContainers.Map qualified as STMMap
import Test.Hspec
import Test.Hspec.Wai hiding (patch, post, put)
import Web.Scim.Capabilities.MetaSchema (empty)
diff --git a/libs/hscim/test/Test/FilterSpec.hs b/libs/hscim/test/Test/FilterSpec.hs
index 9fc6588e7f..426c5f15a3 100644
--- a/libs/hscim/test/Test/FilterSpec.hs
+++ b/libs/hscim/test/Test/FilterSpec.hs
@@ -22,8 +22,8 @@ module Test.FilterSpec where
import Data.Text (Text, cons)
import HaskellWorks.Hspec.Hedgehog
import Hedgehog
-import qualified Hedgehog.Gen as Gen
-import qualified Hedgehog.Range as Range
+import Hedgehog.Gen qualified as Gen
+import Hedgehog.Range qualified as Range
import Test.Hspec
import Web.Scim.AttrName
import Web.Scim.Filter
diff --git a/libs/hscim/test/Test/Schema/AuthenticationSchemeSpec.hs b/libs/hscim/test/Test/Schema/AuthenticationSchemeSpec.hs
index cdd465c193..5a5d6fa33b 100644
--- a/libs/hscim/test/Test/Schema/AuthenticationSchemeSpec.hs
+++ b/libs/hscim/test/Test/Schema/AuthenticationSchemeSpec.hs
@@ -23,10 +23,10 @@ where
import Data.Aeson
import HaskellWorks.Hspec.Hedgehog (require)
import Hedgehog
-import qualified Hedgehog.Gen as Gen
+import Hedgehog.Gen qualified as Gen
import Test.Hspec
import Test.Schema.Util (genUri, mk_prop_caseInsensitive)
-import qualified Web.Scim.Schema.AuthenticationScheme as AS
+import Web.Scim.Schema.AuthenticationScheme qualified as AS
prop_roundtrip :: Property
prop_roundtrip = property $ do
diff --git a/libs/hscim/test/Test/Schema/GroupSpec.hs b/libs/hscim/test/Test/Schema/GroupSpec.hs
index 861945a969..1464ae591b 100644
--- a/libs/hscim/test/Test/Schema/GroupSpec.hs
+++ b/libs/hscim/test/Test/Schema/GroupSpec.hs
@@ -24,11 +24,11 @@ import Data.Aeson
import Data.Text (Text)
import HaskellWorks.Hspec.Hedgehog (require)
import Hedgehog
-import qualified Hedgehog.Gen as Gen
-import qualified Hedgehog.Range as Range
+import Hedgehog.Gen qualified as Gen
+import Hedgehog.Range qualified as Range
import Test.Hspec
import Test.Schema.Util (mk_prop_caseInsensitive)
-import qualified Web.Scim.Class.Group as GroupClass
+import Web.Scim.Class.Group qualified as GroupClass
prop_roundtrip :: Property
prop_roundtrip = property $ do
diff --git a/libs/hscim/test/Test/Schema/MetaSchemaSpec.hs b/libs/hscim/test/Test/Schema/MetaSchemaSpec.hs
index 70c5fd314c..c18bab73f2 100644
--- a/libs/hscim/test/Test/Schema/MetaSchemaSpec.hs
+++ b/libs/hscim/test/Test/Schema/MetaSchemaSpec.hs
@@ -25,8 +25,8 @@ where
import Data.Aeson
import HaskellWorks.Hspec.Hedgehog (require)
import Hedgehog
-import qualified Hedgehog.Gen as Gen
-import qualified Hedgehog.Range as Range
+import Hedgehog.Gen qualified as Gen
+import Hedgehog.Range qualified as Range
import Test.Hspec
import Test.Schema.Util (genSimpleText, genUri, mk_prop_caseInsensitive)
import Web.Scim.Capabilities.MetaSchema
diff --git a/libs/hscim/test/Test/Schema/PatchOpSpec.hs b/libs/hscim/test/Test/Schema/PatchOpSpec.hs
index 2e9a041531..60372ce161 100644
--- a/libs/hscim/test/Test/Schema/PatchOpSpec.hs
+++ b/libs/hscim/test/Test/Schema/PatchOpSpec.hs
@@ -20,10 +20,10 @@
module Test.Schema.PatchOpSpec where
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson qualified as Aeson
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.Aeson.Types (Result (Error, Success), Value (String), fromJSON, toJSON)
-import qualified Data.Aeson.Types as Aeson
+import Data.Aeson.Types qualified as Aeson
import Data.Attoparsec.ByteString (parseOnly)
import Data.Either (isLeft)
import Data.Foldable (for_)
@@ -31,8 +31,8 @@ import Data.Text (Text)
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
import HaskellWorks.Hspec.Hedgehog (require)
import Hedgehog (Gen, Property, forAll, property, tripping)
-import qualified Hedgehog.Gen as Gen
-import qualified Hedgehog.Range as Range
+import Hedgehog.Gen qualified as Gen
+import Hedgehog.Range qualified as Range
import Test.FilterSpec (genAttrPath, genSubAttr, genValuePath)
import Test.Hspec (Spec, describe, it, shouldBe, shouldSatisfy, xit)
import Test.Schema.Util (mk_prop_caseInsensitive)
diff --git a/libs/hscim/test/Test/Schema/ResourceSpec.hs b/libs/hscim/test/Test/Schema/ResourceSpec.hs
index d699201ff9..88f6390efa 100644
--- a/libs/hscim/test/Test/Schema/ResourceSpec.hs
+++ b/libs/hscim/test/Test/Schema/ResourceSpec.hs
@@ -23,11 +23,11 @@ where
import Data.Aeson
import HaskellWorks.Hspec.Hedgehog (require)
import Hedgehog
-import qualified Hedgehog.Gen as Gen
+import Hedgehog.Gen qualified as Gen
import Test.Hspec
import Test.Schema.Util (genUri, mk_prop_caseInsensitive)
import Web.Scim.Schema.ResourceType
-import qualified Web.Scim.Schema.Schema as Schema
+import Web.Scim.Schema.Schema qualified as Schema
prop_roundtrip :: Property
prop_roundtrip = property $ do
diff --git a/libs/hscim/test/Test/Schema/UserSpec.hs b/libs/hscim/test/Test/Schema/UserSpec.hs
index 1885060fac..69a9bbdd34 100644
--- a/libs/hscim/test/Test/Schema/UserSpec.hs
+++ b/libs/hscim/test/Test/Schema/UserSpec.hs
@@ -26,29 +26,29 @@ module Test.Schema.UserSpec
where
import Data.Aeson
-import qualified Data.Aeson.KeyMap as KeyMap
+import Data.Aeson.KeyMap qualified as KeyMap
import Data.Either (isLeft, isRight)
import Data.Foldable (for_)
import Data.Text (Text)
import HaskellWorks.Hspec.Hedgehog (require)
import Hedgehog
-import qualified Hedgehog.Gen as Gen
-import qualified Hedgehog.Range as Range
+import Hedgehog.Gen qualified as Gen
+import Hedgehog.Range qualified as Range
import Lens.Micro
import Network.URI.Static (uri)
import Test.Hspec
import Test.Schema.Util (genUri, mk_prop_caseInsensitive)
import Text.Email.Validate (emailAddress, validate)
-import qualified Web.Scim.Class.User as UserClass
+import Web.Scim.Class.User qualified as UserClass
import Web.Scim.Filter (AttrPath (..))
import Web.Scim.Schema.Common (ScimBool (ScimBool), URI (..), WithId (..), lowerKey)
-import qualified Web.Scim.Schema.ListResponse as ListResponse
+import Web.Scim.Schema.ListResponse qualified as ListResponse
import Web.Scim.Schema.Meta (ETag (Strong, Weak), Meta (..), WithMeta (..))
import Web.Scim.Schema.PatchOp (Op (..), Operation (..), PatchOp (..), Patchable (..), Path (..))
-import qualified Web.Scim.Schema.PatchOp as PatchOp
+import Web.Scim.Schema.PatchOp qualified as PatchOp
import Web.Scim.Schema.Schema (Schema (..))
import Web.Scim.Schema.User (NoUserExtra (..), User (..))
-import qualified Web.Scim.Schema.User as User
+import Web.Scim.Schema.User qualified as User
import Web.Scim.Schema.User.Address as Address
import Web.Scim.Schema.User.Certificate as Certificate
import Web.Scim.Schema.User.Email as Email
diff --git a/libs/hscim/test/Test/Schema/Util.hs b/libs/hscim/test/Test/Schema/Util.hs
index 83099d72b5..933364812d 100644
--- a/libs/hscim/test/Test/Schema/Util.hs
+++ b/libs/hscim/test/Test/Schema/Util.hs
@@ -28,7 +28,7 @@ module Test.Schema.Util
where
import Data.Aeson
-import qualified Data.Aeson.Key as Key
+import Data.Aeson.Key qualified as Key
import Data.Aeson.KeyMap as KeyMap
import Data.Foldable.WithIndex (ifoldl')
import Data.Text (Text, toCaseFold, toLower, toUpper)
diff --git a/libs/http2-manager/src/HTTP2/Client/Manager/Internal.hs b/libs/http2-manager/src/HTTP2/Client/Manager/Internal.hs
index 1982979812..43200f6c29 100644
--- a/libs/http2-manager/src/HTTP2/Client/Manager/Internal.hs
+++ b/libs/http2-manager/src/HTTP2/Client/Manager/Internal.hs
@@ -31,21 +31,21 @@ import Control.Exception
import Control.Monad
import Control.Monad.IO.Class
import Data.ByteString
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Char8 as C8
+import Data.ByteString qualified as BS
+import Data.ByteString.Char8 qualified as C8
import Data.IORef
import Data.Map
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe (fromMaybe)
import Data.Streaming.Network
-import qualified Data.Text as Text
-import qualified Data.Text.Encoding as Text
+import Data.Text qualified as Text
+import Data.Text.Encoding qualified as Text
import Data.Unique
import Foreign.Marshal.Alloc (mallocBytes)
import GHC.IO.Exception
-import qualified Network.HTTP2.Client as HTTP2
-import qualified Network.Socket as NS
-import qualified OpenSSL.Session as SSL
+import Network.HTTP2.Client qualified as HTTP2
+import Network.Socket qualified as NS
+import OpenSSL.Session qualified as SSL
import System.IO.Error
import qualified System.TimeManager
import System.Timeout
diff --git a/libs/http2-manager/test/Test/HTTP2/Client/ManagerSpec.hs b/libs/http2-manager/test/Test/HTTP2/Client/ManagerSpec.hs
index 352f1c68fb..93c5a06a8c 100644
--- a/libs/http2-manager/test/Test/HTTP2/Client/ManagerSpec.hs
+++ b/libs/http2-manager/test/Test/HTTP2/Client/ManagerSpec.hs
@@ -33,13 +33,13 @@ import Control.Concurrent.STM
import Control.Exception
import Control.Monad
import Data.ByteString (ByteString)
-import qualified Data.ByteString as BS
-import qualified Data.ByteString.Builder as Builder
-import qualified Data.ByteString.Lazy as LBS
-import qualified Data.ByteString.Lazy.Char8 as LBS
+import Data.ByteString qualified as BS
+import Data.ByteString.Builder qualified as Builder
+import Data.ByteString.Lazy qualified as LBS
+import Data.ByteString.Lazy.Char8 qualified as LBS
import Data.IORef
import Data.Map (Map)
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Maybe (fromMaybe, isJust)
import Data.Streaming.Network (bindPortTCP, bindRandomPortTCP)
import Data.Unique
@@ -48,13 +48,13 @@ import GHC.IO.Exception
import HTTP2.Client.Manager
import HTTP2.Client.Manager.Internal
import Network.HTTP.Types
-import qualified Network.HTTP2.Client as Client
-import qualified Network.HTTP2.Client as HTTP2
+import Network.HTTP2.Client qualified as Client
+import Network.HTTP2.Client qualified as HTTP2
import Network.HTTP2.Server (defaultServerConfig)
-import qualified Network.HTTP2.Server as Server
+import Network.HTTP2.Server qualified as Server
import Network.Socket
-import qualified Network.Socket as NS
-import qualified OpenSSL.Session as SSL
+import Network.Socket qualified as NS
+import OpenSSL.Session qualified as SSL
import System.Random (randomRIO)
import qualified System.TimeManager
import Test.Hspec
diff --git a/libs/polysemy-wire-zoo/src/Polysemy/TinyLog.hs b/libs/polysemy-wire-zoo/src/Polysemy/TinyLog.hs
index 4a72cb8f8c..0bdeb41e71 100644
--- a/libs/polysemy-wire-zoo/src/Polysemy/TinyLog.hs
+++ b/libs/polysemy-wire-zoo/src/Polysemy/TinyLog.hs
@@ -33,9 +33,9 @@ import Imports
import Polysemy
import Polysemy.Error (Error)
import qualified Polysemy.Error
-import qualified System.Logger as Log
+import System.Logger qualified as Log
import Wire.Sem.Logger
-import qualified Wire.Sem.Logger as Logger
+import Wire.Sem.Logger qualified as Logger
type TinyLog = Logger (Log.Msg -> Log.Msg)
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/FromUTC.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/FromUTC.hs
index e560259eea..59d250286b 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/FromUTC.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/FromUTC.hs
@@ -21,7 +21,7 @@ module Wire.Sem.FromUTC where
import Data.Time (UTCTime)
import Data.Time.Clock.POSIX (POSIXTime, utcTimeToPOSIXSeconds)
import Imports
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
-- | The class is helpful in interpreters for the 'Now' effect. It makes it
-- possible to use the interpreters for any time type so long as it implements
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Jwk.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Jwk.hs
index 7f21d7d46a..39ae179de1 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Jwk.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Jwk.hs
@@ -23,7 +23,7 @@ import Control.Exception
import Crypto.JOSE.JWK
import Data.Aeson
import Data.ByteString (fromStrict)
-import qualified Data.ByteString as BS
+import Data.ByteString qualified as BS
import Imports
import Polysemy
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Logger/TinyLog.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Logger/TinyLog.hs
index 17e42dd0be..b71bd001a1 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Logger/TinyLog.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Logger/TinyLog.hs
@@ -34,7 +34,7 @@ import Imports
import Polysemy
import Polysemy.TinyLog (TinyLog)
import System.Logger (Level (..))
-import qualified System.Logger as Log
+import System.Logger qualified as Log
import Wire.Sem.Logger
loggerToTinyLog ::
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Metrics/IO.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Metrics/IO.hs
index 7e64c546f3..65c27f4a08 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Metrics/IO.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Metrics/IO.hs
@@ -19,7 +19,7 @@ module Wire.Sem.Metrics.IO where
import Imports
import Polysemy
-import qualified Prometheus as Prom
+import Prometheus qualified as Prom
import Wire.Sem.Metrics
runMetricsToIO :: (Member (Embed IO) r) => InterpreterFor Metrics r
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Now/Spec.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Now/Spec.hs
index 84b789646b..7da35005c9 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Now/Spec.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Now/Spec.hs
@@ -27,7 +27,7 @@ import Polysemy.Input
import Test.Hspec
import Test.Hspec.QuickCheck
import Test.QuickCheck
-import qualified Wire.Sem.Now as E
+import Wire.Sem.Now qualified as E
propsForInterpreter ::
(PropConstraints r f) =>
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Paging/Cassandra.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Paging/Cassandra.hs
index 12210c3c8a..81992e035c 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Paging/Cassandra.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Paging/Cassandra.hs
@@ -34,7 +34,7 @@ import Cassandra
import Data.Id
import Data.Range
import Imports
-import qualified Wire.Sem.Paging as E
+import Wire.Sem.Paging qualified as E
-- | This paging system uses Cassandra's 'PagingState' to keep track of state,
-- and does not rely on ordering. This is the preferred way of paging across
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Random/IO.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Random/IO.hs
index 53d75a904e..0f9ec3f401 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Random/IO.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Random/IO.hs
@@ -21,7 +21,7 @@ module Wire.Sem.Random.IO
where
import Data.Id (randomId)
-import qualified Data.UUID.V4 as UUID
+import Data.UUID.V4 qualified as UUID
import Imports
import OpenSSL.BN
import OpenSSL.Random (randBytes)
diff --git a/libs/polysemy-wire-zoo/src/Wire/Sem/Random/Null.hs b/libs/polysemy-wire-zoo/src/Wire/Sem/Random/Null.hs
index 7d19eff66c..e9574c32d0 100644
--- a/libs/polysemy-wire-zoo/src/Wire/Sem/Random/Null.hs
+++ b/libs/polysemy-wire-zoo/src/Wire/Sem/Random/Null.hs
@@ -22,7 +22,7 @@ where
import Crypto.Random
import Data.Id (Id (..))
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Imports
import Polysemy
import Wire.Sem.Random (Random (..))
diff --git a/libs/polysemy-wire-zoo/test/Test/IntersperseSpec.hs b/libs/polysemy-wire-zoo/test/Test/IntersperseSpec.hs
index 19f786137d..d2065403fb 100644
--- a/libs/polysemy-wire-zoo/test/Test/IntersperseSpec.hs
+++ b/libs/polysemy-wire-zoo/test/Test/IntersperseSpec.hs
@@ -20,7 +20,7 @@
module Test.IntersperseSpec where
-import qualified Data.Set as S
+import Data.Set qualified as S
import Imports hiding (intersperse)
import Polysemy
import Polysemy.Output (output)
diff --git a/libs/wire-api/test/golden.hs b/libs/wire-api/test/golden.hs
index 1da1c8fc88..122f21dd88 100644
--- a/libs/wire-api/test/golden.hs
+++ b/libs/wire-api/test/golden.hs
@@ -16,7 +16,7 @@
-- with this program. If not, see .
import Imports
-import qualified Test.Wire.API.Golden.Run as Run
+import Test.Wire.API.Golden.Run qualified as Run
main :: IO ()
main = Run.main
diff --git a/libs/wire-api/test/unit.hs b/libs/wire-api/test/unit.hs
index 8c3b00333d..d60cbc2d2c 100644
--- a/libs/wire-api/test/unit.hs
+++ b/libs/wire-api/test/unit.hs
@@ -16,7 +16,7 @@
-- with this program. If not, see .
import Imports
-import qualified Test.Wire.API.Run as Run
+import Test.Wire.API.Run qualified as Run
main :: IO ()
main = Run.main
diff --git a/libs/wire-subsystems/test/Main.hs b/libs/wire-subsystems/test/Main.hs
index fb63bf5df4..78f4779400 100644
--- a/libs/wire-subsystems/test/Main.hs
+++ b/libs/wire-subsystems/test/Main.hs
@@ -19,7 +19,7 @@ module Main where
import Imports
import qualified Spec
-import qualified Test.Hspec as H
+import Test.Hspec qualified as H
main :: IO ()
main = H.hspec Spec.spec
diff --git a/services/cargohold/src/CargoHold/API/AuditLog.hs b/services/cargohold/src/CargoHold/API/AuditLog.hs
index df869c6b4c..11c959e68b 100644
--- a/services/cargohold/src/CargoHold/API/AuditLog.hs
+++ b/services/cargohold/src/CargoHold/API/AuditLog.hs
@@ -24,7 +24,7 @@ module CargoHold.API.AuditLog
where
import CargoHold.S3 (AssetAuditLogMetadata (..), S3AssetMeta (..))
-import qualified CargoHold.Types.V3 as V3
+import CargoHold.Types.V3 qualified as V3
import Codec.MIME.Type (showType)
import Data.ByteString.Conversion.To (toByteString)
import Data.Id (UserId, botUserId)
@@ -32,7 +32,7 @@ import Data.Misc (IpAddr)
import Data.Qualified (Local, Qualified, Remote, qDomain, qUnqualified, tDomain, tUnqualified)
import Data.Text.Encoding (decodeUtf8)
import Imports
-import qualified System.Logger.Class as Log
+import System.Logger.Class qualified as Log
import System.Logger.Message (msg, val, (.=), (~~))
import URI.ByteString
import Wire.API.Asset (unAssetMIMEType)
diff --git a/services/cargohold/src/CargoHold/API/Federation.hs b/services/cargohold/src/CargoHold/API/Federation.hs
index 6f41992b18..6b96781d4b 100644
--- a/services/cargohold/src/CargoHold/API/Federation.hs
+++ b/services/cargohold/src/CargoHold/API/Federation.hs
@@ -27,7 +27,7 @@ import CargoHold.API.V3
import CargoHold.App
import CargoHold.Options
import CargoHold.S3 (S3AssetMeta)
-import qualified CargoHold.S3 as S3
+import CargoHold.S3 qualified as S3
import CargoHold.Types.V3 (Principal (UserPrincipal))
import Control.Error
import Data.ByteString.Conversion (toByteString')
@@ -39,7 +39,7 @@ import Imports
import Servant.API
import Servant.Server hiding (Handler)
import Wire.API.Federation.API
-import qualified Wire.API.Federation.API.Cargohold as F
+import Wire.API.Federation.API.Cargohold qualified as F
import Wire.API.Routes.AssetBody
import Wire.API.Routes.Named
diff --git a/services/cargohold/src/CargoHold/API/Legacy.hs b/services/cargohold/src/CargoHold/API/Legacy.hs
index 148b35d650..e9a0f49759 100644
--- a/services/cargohold/src/CargoHold/API/Legacy.hs
+++ b/services/cargohold/src/CargoHold/API/Legacy.hs
@@ -23,7 +23,7 @@ module CargoHold.API.Legacy
where
import CargoHold.App
-import qualified CargoHold.S3 as S3
+import CargoHold.S3 qualified as S3
import CargoHold.Types.V3 (Principal (UserPrincipal))
import CargoHold.Util (genSignedURL)
import Data.Id
diff --git a/services/cargohold/src/CargoHold/API/Public.hs b/services/cargohold/src/CargoHold/API/Public.hs
index 2185d8a24f..4e16b92d75 100644
--- a/services/cargohold/src/CargoHold/API/Public.hs
+++ b/services/cargohold/src/CargoHold/API/Public.hs
@@ -18,17 +18,17 @@
module CargoHold.API.Public (servantSitemap, internalSitemap) where
import CargoHold.API.Error (unverifiedUser, userNotFound)
-import qualified CargoHold.API.Legacy as LegacyAPI
+import CargoHold.API.Legacy qualified as LegacyAPI
import CargoHold.API.Util
-import qualified CargoHold.API.V3 as V3
+import CargoHold.API.V3 qualified as V3
import CargoHold.App
import CargoHold.Federation
-import qualified CargoHold.Types.V3 as V3
+import CargoHold.Types.V3 qualified as V3
import Control.Lens
import Control.Monad.Trans.Except (throwE)
import Data.ByteString.Builder
-import qualified Data.ByteString.Builder as Builder
-import qualified Data.ByteString.Lazy as LBS
+import Data.ByteString.Builder qualified as Builder
+import Data.ByteString.Lazy qualified as LBS
import Data.Domain
import Data.Id
import Data.Kind
@@ -36,7 +36,7 @@ import Data.Qualified
import Data.Text.Encoding
import Data.Text.Encoding.Error
import Imports hiding (head)
-import qualified Network.HTTP.Types as HTTP
+import Network.HTTP.Types qualified as HTTP
import Servant.API
import Servant.Server hiding (Handler)
import URI.ByteString as URI
diff --git a/services/cargohold/src/CargoHold/API/V3.hs b/services/cargohold/src/CargoHold/API/V3.hs
index ffdd022fea..c419b6cde5 100644
--- a/services/cargohold/src/CargoHold/API/V3.hs
+++ b/services/cargohold/src/CargoHold/API/V3.hs
@@ -31,15 +31,15 @@ import CargoHold.API.AuditLog
import CargoHold.API.Error
import CargoHold.API.Util
import CargoHold.App
-import qualified CargoHold.Metrics as Metrics
+import CargoHold.Metrics qualified as Metrics
import CargoHold.Options
import CargoHold.S3 (AssetAuditLogMetadata (AssetAuditLogMetadata))
-import qualified CargoHold.S3 as S3
+import CargoHold.S3 qualified as S3
import CargoHold.Types.V3
-import qualified CargoHold.Types.V3 as V3
+import CargoHold.Types.V3 qualified as V3
import CargoHold.Util
-import qualified Codec.MIME.Parse as MIME
-import qualified Codec.MIME.Type as MIME
+import Codec.MIME.Parse qualified as MIME
+import Codec.MIME.Type qualified as MIME
import qualified Conduit
import Control.Applicative (optional)
import Control.Error
@@ -49,15 +49,15 @@ import Crypto.Random (getRandomBytes)
import Data.Aeson (eitherDecodeStrict')
import Data.Attoparsec.ByteString.Char8
import Data.ByteString.Conversion (toByteString')
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Conduit
-import qualified Data.Conduit.Attoparsec as Conduit
+import Data.Conduit.Attoparsec qualified as Conduit
import Data.Id
-import qualified Data.List as List
+import Data.List qualified as List
import Data.Qualified
-import qualified Data.Text.Ascii as Ascii
+import Data.Text.Ascii qualified as Ascii
import Data.Text.Encoding (decodeLatin1)
-import qualified Data.Text.Lazy as LT
+import Data.Text.Lazy qualified as LT
import Data.Time.Clock
import Data.UUID.V4
import Imports hiding (take)
diff --git a/services/cargohold/src/CargoHold/AWS.hs b/services/cargohold/src/CargoHold/AWS.hs
index 4984561ba4..fc06428ff2 100644
--- a/services/cargohold/src/CargoHold/AWS.hs
+++ b/services/cargohold/src/CargoHold/AWS.hs
@@ -35,8 +35,8 @@ module CargoHold.AWS
where
import Amazonka (AWSRequest, AWSResponse)
-import qualified Amazonka as AWS
-import qualified Amazonka.S3 as S3
+import Amazonka qualified as AWS
+import Amazonka.S3 qualified as S3
import CargoHold.API.Error
import CargoHold.CloudFront
import CargoHold.Options hiding (cloudFront, s3Bucket)
@@ -47,9 +47,9 @@ import Control.Retry
import Data.ByteString.Builder (toLazyByteString)
import Imports
import Network.HTTP.Client (HttpException (..), HttpExceptionContent (..), Manager)
-import qualified System.Logger as Logger
+import System.Logger qualified as Logger
import System.Logger.Class (Logger, MonadLogger (log), (~~))
-import qualified System.Logger.Class as Log
+import System.Logger.Class qualified as Log
import Util.Options (AWSEndpoint (..))
data Env = Env
diff --git a/services/cargohold/src/CargoHold/App.hs b/services/cargohold/src/CargoHold/App.hs
index ef292fdaef..67663a44d6 100644
--- a/services/cargohold/src/CargoHold/App.hs
+++ b/services/cargohold/src/CargoHold/App.hs
@@ -50,15 +50,15 @@ import Amazonka (S3AddressingStyle (S3AddressingStylePath))
import Bilge (Manager, MonadHttp, newManager, withResponse)
import qualified Bilge
import Bilge.RPC (HasRequestId (..))
-import qualified CargoHold.AWS as AWS
+import CargoHold.AWS qualified as AWS
import CargoHold.Options (AWSOpts, Opts, S3Compatibility (..), brig)
-import qualified CargoHold.Options as Opt
+import CargoHold.Options qualified as Opt
import Control.Error (ExceptT, runExceptT)
import Control.Exception (catch, throwIO)
import Control.Lens (lensField, lensRules, makeLensesWith, non, (.~), (?~), (^.))
import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)
import Data.Id
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Qualified
import HTTP2.Client.Manager (Http2Manager, http2ManagerWithSSLCtx)
import Imports hiding (log)
@@ -66,15 +66,15 @@ import Network.HTTP.Client (ManagerSettings (..), requestHeaders, responseTimeou
import Network.HTTP.Client.OpenSSL
import Network.Wai.Utilities (Error (..))
import OpenSSL.Session (SSLContext, SSLOption (..))
-import qualified OpenSSL.Session as SSL
+import OpenSSL.Session qualified as SSL
import Prometheus
-import qualified Servant.Client as Servant
+import Servant.Client qualified as Servant
import System.Logger.Class hiding (settings)
-import qualified System.Logger.Extended as Log
+import System.Logger.Extended qualified as Log
import Util.Options
import Util.SuffixNamer
import Wire.API.Routes.Internal.Brig (BrigInternalClient)
-import qualified Wire.API.Routes.Internal.Brig as IBrig
+import Wire.API.Routes.Internal.Brig qualified as IBrig
-------------------------------------------------------------------------------
-- Environment
diff --git a/services/cargohold/src/CargoHold/CloudFront.hs b/services/cargohold/src/CargoHold/CloudFront.hs
index 0c8666c156..f9cbc6bc97 100644
--- a/services/cargohold/src/CargoHold/CloudFront.hs
+++ b/services/cargohold/src/CargoHold/CloudFront.hs
@@ -28,9 +28,9 @@ module CargoHold.CloudFront
where
import Control.AutoUpdate
-import qualified Data.ByteString.Base64 as B64
+import Data.ByteString.Base64 qualified as B64
import Data.ByteString.Builder
-import qualified Data.ByteString.Char8 as C8
+import Data.ByteString.Char8 qualified as C8
import Data.ByteString.Conversion
import Data.ByteString.Lazy (toStrict)
import Data.Text.Encoding (encodeUtf8)
@@ -38,7 +38,7 @@ import Data.Time.Clock.POSIX
import Data.Yaml (FromJSON)
import Imports
import OpenSSL.EVP.Digest (getDigestByName)
-import qualified OpenSSL.EVP.Sign as SSL
+import OpenSSL.EVP.Sign qualified as SSL
import OpenSSL.PEM (PemPasswordSupply (PwNone), readPrivateKey)
import URI.ByteString
diff --git a/services/cargohold/src/CargoHold/Metrics.hs b/services/cargohold/src/CargoHold/Metrics.hs
index 5d76beb2db..33d02a72c8 100644
--- a/services/cargohold/src/CargoHold/Metrics.hs
+++ b/services/cargohold/src/CargoHold/Metrics.hs
@@ -18,7 +18,7 @@
module CargoHold.Metrics where
import Imports
-import qualified Prometheus as Prom
+import Prometheus qualified as Prom
s3UploadOk :: (Prom.MonadMonitor m) => m ()
s3UploadOk = Prom.incCounter netS3UploadOk
diff --git a/services/cargohold/src/CargoHold/Options.hs b/services/cargohold/src/CargoHold/Options.hs
index d4225095c6..4f14bf9051 100644
--- a/services/cargohold/src/CargoHold/Options.hs
+++ b/services/cargohold/src/CargoHold/Options.hs
@@ -21,7 +21,7 @@
module CargoHold.Options where
import Amazonka (S3AddressingStyle (..))
-import qualified CargoHold.CloudFront as CF
+import CargoHold.CloudFront qualified as CF
import Control.Lens hiding (Level)
import Data.Aeson (FromJSON (..), withText)
import Data.Aeson.TH
diff --git a/services/cargohold/src/CargoHold/Run.hs b/services/cargohold/src/CargoHold/Run.hs
index beeba08763..2c23ae7738 100644
--- a/services/cargohold/src/CargoHold/Run.hs
+++ b/services/cargohold/src/CargoHold/Run.hs
@@ -40,7 +40,7 @@ module CargoHold.Run
where
import AWS.Util (readAuthExpiration)
-import qualified Amazonka as AWS
+import Amazonka qualified as AWS
import CargoHold.API.Federation
import CargoHold.API.Public
import CargoHold.AWS (amazonkaEnv)
@@ -54,15 +54,15 @@ import Data.Metrics.Servant
import Data.Proxy
import Data.Text (unpack)
import Imports
-import qualified Network.Wai as Wai
-import qualified Network.Wai.Middleware.Gzip as GZip
+import Network.Wai qualified as Wai
+import Network.Wai.Middleware.Gzip qualified as GZip
import Network.Wai.Utilities.Request
import Network.Wai.Utilities.Server
-import qualified Network.Wai.Utilities.Server as Server
+import Network.Wai.Utilities.Server qualified as Server
import qualified Servant
import Servant.API
import Servant.Server hiding (Handler, runHandler)
-import qualified UnliftIO.Async as Async
+import UnliftIO.Async qualified as Async
import Util.Options
import Wire.API.Routes.API
import Wire.API.Routes.Internal.Cargohold
diff --git a/services/cargohold/src/CargoHold/S3.hs b/services/cargohold/src/CargoHold/S3.hs
index 08bcdda659..0635278fb5 100644
--- a/services/cargohold/src/CargoHold/S3.hs
+++ b/services/cargohold/src/CargoHold/S3.hs
@@ -40,40 +40,40 @@ where
import Amazonka hiding (Error)
import Amazonka.S3
import Amazonka.S3.Lens
-import qualified Amazonka.S3.StreamingUpload as SU
+import Amazonka.S3.StreamingUpload qualified as SU
import CargoHold.API.Error
import CargoHold.AWS (amazonkaEnvWithDownloadEndpoint)
-import qualified CargoHold.AWS as AWS
+import CargoHold.AWS qualified as AWS
import CargoHold.App hiding (Env)
import CargoHold.Options
-import qualified CargoHold.Types.V3 as V3
-import qualified Codec.MIME.Parse as MIME
-import qualified Codec.MIME.Type as MIME
+import CargoHold.Types.V3 qualified as V3
+import Codec.MIME.Parse qualified as MIME
+import Codec.MIME.Type qualified as MIME
import Conduit
import Control.Error (throwE)
import Control.Lens hiding (parts, (.=), (:<), (:>))
import Control.Monad.Catch (try)
-import qualified Data.Aeson as A
+import Data.Aeson qualified as A
import Data.Bifunctor (first)
-import qualified Data.ByteString as BS
+import Data.ByteString qualified as BS
import Data.ByteString.Builder (toLazyByteString)
import Data.ByteString.Conversion
import Data.ByteString.Lazy (fromStrict)
-import qualified Data.ByteString.Lazy as LBS
-import qualified Data.CaseInsensitive as CI
+import Data.ByteString.Lazy qualified as LBS
+import Data.CaseInsensitive qualified as CI
import Data.Conduit.Binary
-import qualified Data.HashMap.Lazy as HML
+import Data.HashMap.Lazy qualified as HML
import Data.Id
import Data.Qualified (Qualified)
-import qualified Data.Schema as S
-import qualified Data.Text as Text
-import qualified Data.Text.Ascii as Ascii
+import Data.Schema qualified as S
+import Data.Text qualified as Text
+import Data.Text.Ascii qualified as Ascii
import Data.Text.Encoding (decodeLatin1, encodeUtf8)
-import qualified Data.Text.Encoding as Text
+import Data.Text.Encoding qualified as Text
import Data.Time.Clock
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Imports
-import qualified System.Logger.Class as Log
+import System.Logger.Class qualified as Log
import System.Logger.Message (msg, val, (.=), (~~))
import Test.QuickCheck (Arbitrary (..))
import URI.ByteString
diff --git a/services/cargohold/src/CargoHold/Util.hs b/services/cargohold/src/CargoHold/Util.hs
index 763866e46b..8eff4f5b1e 100644
--- a/services/cargohold/src/CargoHold/Util.hs
+++ b/services/cargohold/src/CargoHold/Util.hs
@@ -20,11 +20,11 @@ module CargoHold.Util where
import CargoHold.API.AuditLog
import CargoHold.AWS
import CargoHold.App
-import qualified CargoHold.CloudFront as CloudFront
+import CargoHold.CloudFront qualified as CloudFront
import CargoHold.Options
import CargoHold.S3 (S3AssetMeta)
-import qualified CargoHold.S3 as S3
-import qualified CargoHold.Types as V3
+import CargoHold.S3 qualified as S3
+import CargoHold.Types qualified as V3
import Data.ByteString.Conversion
import Data.Qualified (Qualified)
import Imports
diff --git a/services/cargohold/test/integration/API.hs b/services/cargohold/test/integration/API.hs
index 28892d4c39..b6ca87f7f9 100644
--- a/services/cargohold/test/integration/API.hs
+++ b/services/cargohold/test/integration/API.hs
@@ -22,7 +22,7 @@ import Bilge hiding (body)
import Bilge.Assert
import CargoHold.Types
import Control.Exception (throw)
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import Data.Domain
import Data.Id
import Data.Qualified
@@ -30,8 +30,8 @@ import Data.UUID.V4
import Federator.MockServer
import Imports hiding (head)
import Network.HTTP.Media ((//))
-import qualified Network.HTTP.Types as HTTP
-import qualified Network.Wai.Utilities.Error as Wai
+import Network.HTTP.Types qualified as HTTP
+import Network.Wai.Utilities.Error qualified as Wai
import Test.Tasty
import Test.Tasty.HUnit
import TestSetup
diff --git a/services/cargohold/test/integration/API/Util.hs b/services/cargohold/test/integration/API/Util.hs
index ed2968428f..93ce345c81 100644
--- a/services/cargohold/test/integration/API/Util.hs
+++ b/services/cargohold/test/integration/API/Util.hs
@@ -30,10 +30,10 @@ import Data.ByteString.Conversion
import Data.Default
import Data.Id
import Data.Qualified
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Federator.MockServer
import Imports hiding (head)
-import qualified Network.HTTP.Media as HTTP
+import Network.HTTP.Media qualified as HTTP
import Network.Wai.Utilities.MockServer
import TestSetup
import Util.Options
diff --git a/services/cargohold/test/integration/App.hs b/services/cargohold/test/integration/App.hs
index b4b9c128ed..1190802575 100644
--- a/services/cargohold/test/integration/App.hs
+++ b/services/cargohold/test/integration/App.hs
@@ -25,8 +25,8 @@ import CargoHold.Options as Opts
import Control.Exception
import Control.Lens
import Data.ByteString.Conversion
-import qualified Data.Map as Map
-import qualified Data.Text as T
+import Data.Map qualified as Map
+import Data.Text qualified as T
import Imports
import Test.Tasty
import Test.Tasty.HUnit
diff --git a/services/cargohold/test/integration/TestSetup.hs b/services/cargohold/test/integration/TestSetup.hs
index 629158039c..dc442d82d2 100644
--- a/services/cargohold/test/integration/TestSetup.hs
+++ b/services/cargohold/test/integration/TestSetup.hs
@@ -42,14 +42,14 @@ import Control.Lens
import Control.Monad.Codensity
import Control.Monad.Except
import Control.Monad.Morph
-import qualified Data.ByteString.Char8 as B8
+import Data.ByteString.Char8 qualified as B8
import Data.ByteString.Conversion
-import qualified Data.Text as T
+import Data.Text qualified as T
import Data.Text.Encoding
import Data.Yaml
import Imports
import Network.HTTP.Client hiding (responseBody)
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Network.HTTP.Client.TLS
import Servant.Client.Streaming
import Test.Tasty
diff --git a/services/cargohold/test/unit/Main.hs b/services/cargohold/test/unit/Main.hs
index 0a0dd4f77c..cb6e0b924b 100644
--- a/services/cargohold/test/unit/Main.hs
+++ b/services/cargohold/test/unit/Main.hs
@@ -18,7 +18,7 @@
module Main (main) where
import Imports
-import qualified Test.CargoHold.API.AuditLogTest as AuditLog
+import Test.CargoHold.API.AuditLogTest qualified as AuditLog
import Test.Tasty
main :: IO ()
diff --git a/services/cargohold/test/unit/Test/CargoHold/API/AuditLogTest.hs b/services/cargohold/test/unit/Test/CargoHold/API/AuditLogTest.hs
index 73baf693d0..8d9a29ff27 100644
--- a/services/cargohold/test/unit/Test/CargoHold/API/AuditLogTest.hs
+++ b/services/cargohold/test/unit/Test/CargoHold/API/AuditLogTest.hs
@@ -19,16 +19,16 @@ module Test.CargoHold.API.AuditLogTest (tests) where
import CargoHold.API.AuditLog
import CargoHold.S3 (AssetAuditLogMetadata (..), S3AssetMeta (..))
-import qualified CargoHold.Types.V3 as V3
-import qualified Codec.MIME.Type as MIME
+import CargoHold.Types.V3 qualified as V3
+import Codec.MIME.Type qualified as MIME
import Data.Aeson ((.=))
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import Data.ByteString.Conversion (toByteString')
import Data.Domain (Domain (..), domainText)
import Data.Id (UserId, botUserId)
import Data.Misc (IpAddr)
import Data.Qualified
-import qualified Data.Text as T
+import Data.Text qualified as T
import Data.Text.Encoding (decodeUtf8)
import Imports
import System.Logger.Extended (LoggerT, runWithLogger)
@@ -36,7 +36,7 @@ import Test.CargoHold.API.LogJSON
import Test.Tasty
import Test.Tasty.QuickCheck as QC
import URI.ByteString
-import qualified Wire.API.Asset as Asset
+import Wire.API.Asset qualified as Asset
import qualified Wire.Arbitrary ()
tests :: TestTree
diff --git a/services/cargohold/test/unit/Test/CargoHold/API/LogJSON.hs b/services/cargohold/test/unit/Test/CargoHold/API/LogJSON.hs
index ff3991f58d..437a477057 100644
--- a/services/cargohold/test/unit/Test/CargoHold/API/LogJSON.hs
+++ b/services/cargohold/test/unit/Test/CargoHold/API/LogJSON.hs
@@ -20,16 +20,16 @@ module Test.CargoHold.API.LogJSON
)
where
-import qualified Control.Concurrent as CC
+import Control.Concurrent qualified as CC
import Control.Concurrent.Chan (Chan, newChan, readChan, writeChan)
import Data.Aeson (Value)
-import qualified Data.Aeson as A
-import qualified Data.ByteString.Char8 as BS8
-import qualified Data.ByteString.Lazy as LBS
-import qualified GHC.IO.Handle as IOH
+import Data.Aeson qualified as A
+import Data.ByteString.Char8 qualified as BS8
+import Data.ByteString.Lazy qualified as LBS
+import GHC.IO.Handle qualified as IOH
import Imports
-import qualified System.IO as IO
-import qualified System.IO.Error as IOE
+import System.IO qualified as IO
+import System.IO.Error qualified as IOE
import System.Logger.Extended
import System.Posix.IO (closeFd, createPipe, fdToHandle)
import System.Posix.Types (Fd)
diff --git a/services/spar/migrate-data/src/Main.hs b/services/spar/migrate-data/src/Main.hs
index 3c0dde7b78..54ec473ce2 100644
--- a/services/spar/migrate-data/src/Main.hs
+++ b/services/spar/migrate-data/src/Main.hs
@@ -18,7 +18,7 @@
module Main where
import Imports
-import qualified Spar.DataMigration.Run as Run
+import Spar.DataMigration.Run qualified as Run
main :: IO ()
main = Run.main
diff --git a/services/spar/migrate-data/src/Spar/DataMigration/Options.hs b/services/spar/migrate-data/src/Spar/DataMigration/Options.hs
index 6850ca92ec..0c28c26a42 100644
--- a/services/spar/migrate-data/src/Spar/DataMigration/Options.hs
+++ b/services/spar/migrate-data/src/Spar/DataMigration/Options.hs
@@ -28,7 +28,7 @@ module Spar.DataMigration.Options
)
where
-import qualified Cassandra as C
+import Cassandra qualified as C
import Control.Lens
import Data.Text.Strict.Lens
import Imports
diff --git a/services/spar/migrate-data/src/Spar/DataMigration/Run.hs b/services/spar/migrate-data/src/Spar/DataMigration/Run.hs
index c41bd2d2cc..c8aa1ab29a 100644
--- a/services/spar/migrate-data/src/Spar/DataMigration/Run.hs
+++ b/services/spar/migrate-data/src/Spar/DataMigration/Run.hs
@@ -20,18 +20,18 @@
module Spar.DataMigration.Run where
import Cassandra (ClientState)
-import qualified Cassandra as C
+import Cassandra qualified as C
import Cassandra.Util (defInitCassandra)
import Control.Lens
import Control.Monad.Catch (finally)
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import Data.Time (UTCTime, getCurrentTime)
import Imports
-import qualified Options.Applicative as Opts
+import Options.Applicative qualified as Opts
import Spar.DataMigration.Options (settingsParser)
import Spar.DataMigration.Types
-import qualified Spar.DataMigration.V2_UserV2 as V2
-import qualified System.Logger as Log
+import Spar.DataMigration.V2_UserV2 qualified as V2
+import System.Logger qualified as Log
main :: IO ()
main = do
diff --git a/services/spar/migrate-data/src/Spar/DataMigration/Types.hs b/services/spar/migrate-data/src/Spar/DataMigration/Types.hs
index abcdf2d34d..b58556f40c 100644
--- a/services/spar/migrate-data/src/Spar/DataMigration/Types.hs
+++ b/services/spar/migrate-data/src/Spar/DataMigration/Types.hs
@@ -20,13 +20,13 @@
module Spar.DataMigration.Types where
-import qualified Cassandra as C
+import Cassandra qualified as C
import Cassandra.Options
import Control.Lens
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import Imports
import Numeric.Natural (Natural)
-import qualified System.Logger as Logger
+import System.Logger qualified as Logger
data Migration = Migration
{ version :: MigrationVersion,
diff --git a/services/spar/migrate-data/src/Spar/DataMigration/V2_UserV2.hs b/services/spar/migrate-data/src/Spar/DataMigration/V2_UserV2.hs
index ea329e08f8..a66aeb2376 100644
--- a/services/spar/migrate-data/src/Spar/DataMigration/V2_UserV2.hs
+++ b/services/spar/migrate-data/src/Spar/DataMigration/V2_UserV2.hs
@@ -20,24 +20,24 @@
module Spar.DataMigration.V2_UserV2 (migration) where
import Cassandra
-import qualified Conduit as C
-import qualified Data.ByteString.UTF8 as UTF8
+import Conduit qualified as C
+import Data.ByteString.UTF8 qualified as UTF8
import Data.Conduit
-import qualified Data.Conduit.Combinators as CC
+import Data.Conduit.Combinators qualified as CC
import Data.Conduit.Internal (zipSources)
-import qualified Data.Conduit.List as CL
+import Data.Conduit.List qualified as CL
import Data.Id
-import qualified Data.Map.Strict as Map
-import qualified Data.Text as T
+import Data.Map.Strict qualified as Map
+import Data.Text qualified as T
import Data.Time (UTCTime)
import Imports
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import SAML2.WebSSO.Types (Issuer (..))
import Spar.Data (NormalizedUNameID (unNormalizedUNameID), normalizeQualifiedNameId)
import Spar.Data.Instances ()
import Spar.DataMigration.Types (logger)
import Spar.DataMigration.Types hiding (logger)
-import qualified System.Logger as Log
+import System.Logger qualified as Log
import URI.ByteString (serializeURIRef')
-- row in spar.user
diff --git a/services/spar/schema/Main.hs b/services/spar/schema/Main.hs
index 3d00e3008b..3fcc98e888 100644
--- a/services/spar/schema/Main.hs
+++ b/services/spar/schema/Main.hs
@@ -18,7 +18,7 @@
module Main where
import Imports
-import qualified Spar.Schema.Run as Run
+import Spar.Schema.Run qualified as Run
main :: IO ()
main = Run.main
diff --git a/services/spar/src/Spar/API.hs b/services/spar/src/Spar/API.hs
index 58e313646e..d307700fb4 100644
--- a/services/spar/src/Spar/API.hs
+++ b/services/spar/src/Spar/API.hs
@@ -48,18 +48,18 @@ where
import Brig.Types.Intra
import Cassandra as Cas
import Control.Lens hiding ((.=))
-import qualified Data.ByteString as SBS
+import Data.ByteString qualified as SBS
import Data.ByteString.Builder (toLazyByteString)
import Data.ByteString.Conversion
import Data.Domain
import Data.HavePendingInvitations
import Data.Id
import Data.List.NonEmpty (NonEmpty)
-import qualified Data.Map as Map
+import Data.Map qualified as Map
import Data.Proxy
import Data.Range
import Data.Text.Encoding.Error
-import qualified Data.Text.Lazy as T
+import Data.Text.Lazy qualified as T
import Data.Text.Lazy.Encoding
import Data.Time
import Imports
@@ -69,45 +69,45 @@ import Network.Wai.Utilities.Server (defaultRequestIdHeaderName)
import Polysemy
import Polysemy.Error
import Polysemy.Input
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Servant
-import qualified Servant.Multipart as Multipart
+import Servant.Multipart qualified as Multipart
import Servant.Server.Experimental.Auth
import Spar.App
import Spar.CanonicalInterpreter
import Spar.Error
-import qualified Spar.Intra.BrigApp as Brig
+import Spar.Intra.BrigApp qualified as Brig
import Spar.Options
import Spar.Orphans ()
import Spar.Scim hiding (handle)
import Spar.Sem.AReqIDStore (AReqIDStore)
import Spar.Sem.AssIDStore (AssIDStore)
import Spar.Sem.BrigAccess (BrigAccess, getAccount)
-import qualified Spar.Sem.BrigAccess as BrigAccess
+import Spar.Sem.BrigAccess qualified as BrigAccess
import Spar.Sem.DefaultSsoCode (DefaultSsoCode)
-import qualified Spar.Sem.DefaultSsoCode as DefaultSsoCode
+import Spar.Sem.DefaultSsoCode qualified as DefaultSsoCode
import Spar.Sem.GalleyAccess (GalleyAccess)
-import qualified Spar.Sem.GalleyAccess as GalleyAccess
+import Spar.Sem.GalleyAccess qualified as GalleyAccess
import Spar.Sem.IdPConfigStore (IdPConfigStore, Replaced (..), Replacing (..))
-import qualified Spar.Sem.IdPConfigStore as IdPConfigStore
+import Spar.Sem.IdPConfigStore qualified as IdPConfigStore
import Spar.Sem.IdPRawMetadataStore (IdPRawMetadataStore)
-import qualified Spar.Sem.IdPRawMetadataStore as IdPRawMetadataStore
+import Spar.Sem.IdPRawMetadataStore qualified as IdPRawMetadataStore
import Spar.Sem.Reporter (Reporter)
import Spar.Sem.SAML2 (SAML2)
-import qualified Spar.Sem.SAML2 as SAML2
+import Spar.Sem.SAML2 qualified as SAML2
import Spar.Sem.SAMLUserStore (SAMLUserStore)
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
import Spar.Sem.SamlProtocolSettings (SamlProtocolSettings)
-import qualified Spar.Sem.SamlProtocolSettings as SamlProtocolSettings
+import Spar.Sem.SamlProtocolSettings qualified as SamlProtocolSettings
import Spar.Sem.ScimExternalIdStore (ScimExternalIdStore)
import Spar.Sem.ScimTokenStore (ScimTokenStore)
-import qualified Spar.Sem.ScimTokenStore as ScimTokenStore
+import Spar.Sem.ScimTokenStore qualified as ScimTokenStore
import Spar.Sem.ScimUserTimesStore (ScimUserTimesStore)
-import qualified Spar.Sem.ScimUserTimesStore as ScimUserTimesStore
+import Spar.Sem.ScimUserTimesStore qualified as ScimUserTimesStore
import Spar.Sem.VerdictFormatStore (VerdictFormatStore)
-import qualified Spar.Sem.VerdictFormatStore as VerdictFormatStore
+import Spar.Sem.VerdictFormatStore qualified as VerdictFormatStore
import System.Logger (Msg)
-import qualified URI.ByteString as URI
+import URI.ByteString qualified as URI
import Wire.API.Routes.Internal.Spar
import Wire.API.Routes.Named
import Wire.API.Routes.Public (ZHostValue)
@@ -118,10 +118,10 @@ import Wire.API.User.IdentityProvider
import Wire.API.User.Saml
import Wire.ScimSubsystem
import Wire.Sem.Logger (Logger)
-import qualified Wire.Sem.Logger as Logger
+import Wire.Sem.Logger qualified as Logger
import Wire.Sem.Now (Now)
import Wire.Sem.Random (Random)
-import qualified Wire.Sem.Random as Random
+import Wire.Sem.Random qualified as Random
app :: Env -> Application
app ctx0 req cont = do
diff --git a/services/spar/src/Spar/App.hs b/services/spar/src/Spar/App.hs
index 0aca271e88..acf22f6f65 100644
--- a/services/spar/src/Spar/App.hs
+++ b/services/spar/src/Spar/App.hs
@@ -36,27 +36,27 @@ module Spar.App
where
import Bilge
-import qualified Cassandra as Cas
+import Cassandra qualified as Cas
import Control.Exception (assert)
import Control.Lens hiding ((.=))
import Data.Aeson as Aeson (encode, object, (.=))
import Data.Aeson.Text as Aeson (encodeToLazyText)
import Data.ByteString (toStrict)
-import qualified Data.ByteString.Builder as Builder
-import qualified Data.ByteString.UTF8 as UTF8
-import qualified Data.CaseInsensitive as CI
+import Data.ByteString.Builder qualified as Builder
+import Data.ByteString.UTF8 qualified as UTF8
+import Data.CaseInsensitive qualified as CI
import Data.Id
import Data.List.NonEmpty (NonEmpty ((:|)))
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Text as Text
+import Data.List.NonEmpty qualified as NonEmpty
+import Data.Text qualified as Text
import Data.Text.Ascii (encodeBase64, toText)
-import qualified Data.Text.Encoding as Text
-import qualified Data.Text.Lazy as LText
-import qualified Data.Text.Lazy.Encoding as LText
+import Data.Text.Encoding qualified as Text
+import Data.Text.Lazy qualified as LText
+import Data.Text.Lazy.Encoding qualified as LText
import Data.These
import Imports hiding (MonadReader, asks, log)
-import qualified Network.HTTP.Types.Status as Http
-import qualified Network.Wai.Utilities.Error as Wai
+import Network.HTTP.Types.Status qualified as Http
+import Network.Wai.Utilities.Error qualified as Wai
import Polysemy
import Polysemy.Error
import SAML2.Util (renderURI)
@@ -67,31 +67,31 @@ import SAML2.WebSSO
idpExtraInfo,
idpId,
)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Servant
-import qualified Servant.Multipart as Multipart
+import Servant.Multipart qualified as Multipart
import Spar.Error hiding (sparToServerErrorWithLogging)
-import qualified Spar.Intra.BrigApp as Intra
+import Spar.Intra.BrigApp qualified as Intra
import Spar.Options
import Spar.Orphans ()
import Spar.Sem.AReqIDStore (AReqIDStore)
import Spar.Sem.BrigAccess (BrigAccess, getAccount)
-import qualified Spar.Sem.BrigAccess as BrigAccess
+import Spar.Sem.BrigAccess qualified as BrigAccess
import Spar.Sem.GalleyAccess (GalleyAccess)
-import qualified Spar.Sem.GalleyAccess as GalleyAccess
+import Spar.Sem.GalleyAccess qualified as GalleyAccess
import Spar.Sem.IdPConfigStore (IdPConfigStore)
-import qualified Spar.Sem.IdPConfigStore as IdPConfigStore
+import Spar.Sem.IdPConfigStore qualified as IdPConfigStore
import Spar.Sem.Reporter (Reporter)
-import qualified Spar.Sem.Reporter as Reporter
+import Spar.Sem.Reporter qualified as Reporter
import Spar.Sem.SAMLUserStore (SAMLUserStore)
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
import Spar.Sem.ScimExternalIdStore (ScimExternalIdStore)
-import qualified Spar.Sem.ScimExternalIdStore as ScimExternalIdStore
+import Spar.Sem.ScimExternalIdStore qualified as ScimExternalIdStore
import Spar.Sem.ScimTokenStore (ScimTokenStore)
-import qualified Spar.Sem.ScimTokenStore as ScimTokenStore
+import Spar.Sem.ScimTokenStore qualified as ScimTokenStore
import Spar.Sem.VerdictFormatStore (VerdictFormatStore)
-import qualified Spar.Sem.VerdictFormatStore as VerdictFormatStore
-import qualified System.Logger as TinyLog
+import Spar.Sem.VerdictFormatStore qualified as VerdictFormatStore
+import System.Logger qualified as TinyLog
import URI.ByteString as URI
import Web.Cookie (SetCookie, renderSetCookie)
import Wire.API.Team.Role (Role, defaultRole)
@@ -101,9 +101,9 @@ import Wire.API.User.Saml
import Wire.Error
import Wire.ScimSubsystem.Interpreter
import Wire.Sem.Logger (Logger)
-import qualified Wire.Sem.Logger as Logger
+import Wire.Sem.Logger qualified as Logger
import Wire.Sem.Random (Random)
-import qualified Wire.Sem.Random as Random
+import Wire.Sem.Random qualified as Random
throwSparSem :: (Member (Error SparError) r) => SparCustomError -> Sem r a
throwSparSem = throw . SAML.CustomError
diff --git a/services/spar/src/Spar/CanonicalInterpreter.hs b/services/spar/src/Spar/CanonicalInterpreter.hs
index 2627476844..4ec5ef2eae 100644
--- a/services/spar/src/Spar/CanonicalInterpreter.hs
+++ b/services/spar/src/Spar/CanonicalInterpreter.hs
@@ -24,7 +24,7 @@ module Spar.CanonicalInterpreter
)
where
-import qualified Cassandra as Cas
+import Cassandra qualified as Cas
import Control.Monad.Except hiding (mapError)
import Imports
import Polysemy
@@ -68,7 +68,7 @@ import Spar.Sem.ScimUserTimesStore.Cassandra (scimUserTimesStoreToCassandra)
import Spar.Sem.Utils (idpDbErrorToSparError, interpretClientToIO, ttlErrorToSparError)
import Spar.Sem.VerdictFormatStore (VerdictFormatStore)
import Spar.Sem.VerdictFormatStore.Cassandra (verdictFormatStoreToCassandra)
-import qualified System.Logger as TinyLog
+import System.Logger qualified as TinyLog
import Wire.API.User.Saml (TTLError)
import Wire.BrigAPIAccess (BrigAPIAccess)
import Wire.BrigAPIAccess.Rpc (interpretBrigAccess)
diff --git a/services/spar/src/Spar/Data.hs b/services/spar/src/Spar/Data.hs
index 3daa686b6d..d4ae92b1ce 100644
--- a/services/spar/src/Spar/Data.hs
+++ b/services/spar/src/Spar/Data.hs
@@ -35,15 +35,15 @@ import Cassandra as Cas
import Control.Lens
import Control.Monad.Except
import Data.CaseInsensitive (foldCase)
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Time
import GHC.TypeLits (KnownSymbol)
import Imports
import SAML2.Util (renderURI)
-import qualified SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.Types.Email as SAMLEmail
+import SAML2.WebSSO qualified as SAML
+import SAML2.WebSSO.Types.Email qualified as SAMLEmail
import Spar.Options
-import qualified Spar.Schema.Run as Migrations
+import Spar.Schema.Run qualified as Migrations
import Wire.API.User.Saml
-- | A lower bound: @schemaVersion <= whatWeFoundOnCassandra@, not @==@.
diff --git a/services/spar/src/Spar/Data/Instances.hs b/services/spar/src/Spar/Data/Instances.hs
index 1ab252c0f2..fb921a573e 100644
--- a/services/spar/src/Spar/Data/Instances.hs
+++ b/services/spar/src/Spar/Data/Instances.hs
@@ -35,14 +35,14 @@ import Cassandra as Cas
import Data.ByteString (toStrict)
import Data.ByteString.Conversion (fromByteString, toByteString)
import Data.Functor.Alt (Alt (()))
-import qualified Data.Text.Encoding as T
+import Data.Text.Encoding qualified as T
import Data.Text.Encoding.Error
-import qualified Data.Text.Lazy as LT
+import Data.Text.Lazy qualified as LT
import Data.Text.Lazy.Encoding as LT
import Data.X509 (SignedCertificate)
import Imports
import SAML2.Util (parseURI')
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Scim.Types (ScimUserCreationStatus (..))
import Text.XML.DSig (parseKeyInfo, renderKeyInfo)
import URI.ByteString
diff --git a/services/spar/src/Spar/Error.hs b/services/spar/src/Spar/Error.hs
index 48ff8866dc..051050cddf 100644
--- a/services/spar/src/Spar/Error.hs
+++ b/services/spar/src/Spar/Error.hs
@@ -47,21 +47,21 @@ import Bilge (ResponseLBS, responseBody, responseJsonMaybe)
import qualified Bilge
import Control.Monad.Except
import Data.Aeson
-import qualified Data.ByteString.Lazy as LBS
-import qualified Data.Text.Lazy as LText
-import qualified Data.Text.Lazy.Encoding as LText
+import Data.ByteString.Lazy qualified as LBS
+import Data.Text.Lazy qualified as LText
+import Data.Text.Lazy.Encoding qualified as LText
import Data.Typeable (typeRep)
import GHC.Stack (callStack, prettyCallStack)
import Imports
import Network.HTTP.Types.Status
-import qualified Network.Wai as Wai
-import qualified Network.Wai.Utilities.Error as Wai
+import Network.Wai qualified as Wai
+import Network.Wai.Utilities.Error qualified as Wai
import Polysemy
import Polysemy.Error
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Servant
-import qualified System.Logger.Class as Log
-import qualified Web.Scim.Schema.Error as Scim
+import System.Logger.Class qualified as Log
+import Web.Scim.Schema.Error qualified as Scim
import Wire.API.User.Saml (TTLError)
import Wire.Error
import Wire.ScimSubsystem.Interpreter
diff --git a/services/spar/src/Spar/Intra/Brig.hs b/services/spar/src/Spar/Intra/Brig.hs
index fee2e54616..7c1bf486d8 100644
--- a/services/spar/src/Spar/Intra/Brig.hs
+++ b/services/spar/src/Spar/Intra/Brig.hs
@@ -55,13 +55,13 @@ import Data.Code as Code
import Data.Handle (Handle (fromHandle))
import Data.Id (Id (Id), TeamId, UserId)
import Data.Misc (PlainTextPassword6)
-import qualified Data.Text.Lazy as Lazy
+import Data.Text.Lazy qualified as Lazy
import Imports
import Network.HTTP.Types.Method
-import qualified Network.Wai.Utilities.Error as Wai
-import qualified SAML2.WebSSO as SAML
+import Network.Wai.Utilities.Error qualified as Wai
+import SAML2.WebSSO qualified as SAML
import Spar.Error
-import qualified System.Logger.Class as Log
+import System.Logger.Class qualified as Log
import Web.Cookie
import Wire.API.Locale
import Wire.API.Team.Role (Role)
diff --git a/services/spar/src/Spar/Intra/BrigApp.hs b/services/spar/src/Spar/Intra/BrigApp.hs
index 08bc096ee8..c7289caba8 100644
--- a/services/spar/src/Spar/Intra/BrigApp.hs
+++ b/services/spar/src/Spar/Intra/BrigApp.hs
@@ -44,7 +44,7 @@ import Control.Lens
import Control.Monad.Except
import Data.ByteString.Conversion
import Data.CaseInsensitive (original)
-import qualified Data.CaseInsensitive as CI
+import Data.CaseInsensitive qualified as CI
import Data.Handle (Handle, parseHandle)
import Data.HavePendingInvitations
import Data.Id (TeamId, UserId)
@@ -55,12 +55,12 @@ import Data.These.Combinators
import Imports
import Polysemy
import Polysemy.Error
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Error
import Spar.Sem.BrigAccess (BrigAccess)
-import qualified Spar.Sem.BrigAccess as BrigAccess
+import Spar.Sem.BrigAccess qualified as BrigAccess
import Spar.Sem.GalleyAccess (GalleyAccess)
-import qualified Spar.Sem.GalleyAccess as GalleyAccess
+import Spar.Sem.GalleyAccess qualified as GalleyAccess
import Wire.API.Team.Member (HiddenPerm (CreateReadDeleteScimToken), IsPerm, TeamMember)
import Wire.API.User
import Wire.API.User.Scim (ValidScimId (..))
diff --git a/services/spar/src/Spar/Intra/Galley.hs b/services/spar/src/Spar/Intra/Galley.hs
index b938931c56..590475b20f 100644
--- a/services/spar/src/Spar/Intra/Galley.hs
+++ b/services/spar/src/Spar/Intra/Galley.hs
@@ -26,11 +26,11 @@ import Control.Lens
import Control.Monad.Except
import Data.ByteString.Conversion
import Data.Id (TeamId, UserId)
-import qualified Data.Text.Lazy as LText
+import Data.Text.Lazy qualified as LText
import Imports
import Network.HTTP.Types.Method
import Spar.Error
-import qualified System.Logger.Class as Log
+import System.Logger.Class qualified as Log
import Wire.API.Team.Feature
import Wire.API.Team.Member
import Wire.API.Team.Role
diff --git a/services/spar/src/Spar/Options.hs b/services/spar/src/Spar/Options.hs
index d6bf7840cc..b910e5b0c1 100644
--- a/services/spar/src/Spar/Options.hs
+++ b/services/spar/src/Spar/Options.hs
@@ -29,11 +29,11 @@ where
import Control.Exception
import Data.Aeson hiding (fieldLabelModifier)
import Data.Time
-import qualified Data.Yaml as Yaml
+import Data.Yaml qualified as Yaml
import Imports
import Options.Applicative
import SAML2.WebSSO
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import System.Logger.Extended (LogFormat)
import URI.ByteString
import Util.Options
diff --git a/services/spar/src/Spar/Orphans.hs b/services/spar/src/Spar/Orphans.hs
index 5258bccfc3..fe7a4675d9 100644
--- a/services/spar/src/Spar/Orphans.hs
+++ b/services/spar/src/Spar/Orphans.hs
@@ -24,9 +24,9 @@ module Spar.Orphans
)
where
-import qualified Data.Text.Lazy as LText
+import Data.Text.Lazy qualified as LText
import Imports
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Servant (MimeRender (..), PlainText)
import Servant.API.Extended
import Spar.Error
diff --git a/services/spar/src/Spar/Run.hs b/services/spar/src/Spar/Run.hs
index d14e1842b1..f67febf399 100644
--- a/services/spar/src/Spar/Run.hs
+++ b/services/spar/src/Spar/Run.hs
@@ -33,7 +33,7 @@ import Cassandra as Cas
import Cassandra.Util (initCassandraForService)
import Control.Exception (ErrorCall (ErrorCall), throwIO)
import Control.Lens (to, (^.))
-import qualified Data.ByteString.UTF8 as UTF8
+import Data.ByteString.UTF8 qualified as UTF8
import Data.Id
import Data.Metrics.Servant (servantPrometheusMiddleware)
import Data.Proxy (Proxy (Proxy))
@@ -41,24 +41,24 @@ import Data.Text.Encoding
import Imports
import Network.URI
import Network.Wai (Application)
-import qualified Network.Wai as Wai
-import qualified Network.Wai.Handler.Warp as Warp
-import qualified Network.Wai.Middleware.Gunzip as GZip
+import Network.Wai qualified as Wai
+import Network.Wai.Handler.Warp qualified as Warp
+import Network.Wai.Middleware.Gunzip qualified as GZip
import Network.Wai.Utilities.Server
-import qualified Network.Wai.Utilities.Server as WU
-import qualified SAML2.WebSSO as SAML
+import Network.Wai.Utilities.Server qualified as WU
+import SAML2.WebSSO qualified as SAML
import Spar.API (SparAPI, app)
import Spar.App
-import qualified Spar.Data as Data
+import Spar.Data qualified as Data
import Spar.Data.Instances ()
import Spar.Options as Opt
import Spar.Orphans ()
import System.Logger (Logger)
-import qualified System.Logger as Log
-import qualified System.Logger.Extended as Log
-import qualified URI.ByteString as URI
+import System.Logger qualified as Log
+import System.Logger.Extended qualified as Log
+import URI.ByteString qualified as URI
import Util.Options
-import qualified Web.Scim.Schema.Common as Scim
+import Web.Scim.Schema.Common qualified as Scim
import Wire.API.Routes.Version (expandVersionExp)
import Wire.API.Routes.Version.Wai
import Wire.ScimSubsystem.Interpreter
diff --git a/services/spar/src/Spar/Schema/Run.hs b/services/spar/src/Spar/Schema/Run.hs
index 2ddb825c3c..4c6e603bc5 100644
--- a/services/spar/src/Spar/Schema/Run.hs
+++ b/services/spar/src/Spar/Schema/Run.hs
@@ -21,29 +21,29 @@ import Cassandra.MigrateSchema (migrateSchema)
import Cassandra.Schema
import Control.Exception (finally)
import Imports
-import qualified Spar.Schema.V0 as V0
-import qualified Spar.Schema.V1 as V1
-import qualified Spar.Schema.V10 as V10
-import qualified Spar.Schema.V11 as V11
-import qualified Spar.Schema.V12 as V12
-import qualified Spar.Schema.V13 as V13
-import qualified Spar.Schema.V14 as V14
-import qualified Spar.Schema.V15 as V15
-import qualified Spar.Schema.V16 as V16
-import qualified Spar.Schema.V17 as V17
-import qualified Spar.Schema.V18 as V18
-import qualified Spar.Schema.V19 as V19
-import qualified Spar.Schema.V2 as V2
-import qualified Spar.Schema.V20 as V20
-import qualified Spar.Schema.V21 as V21
-import qualified Spar.Schema.V3 as V3
-import qualified Spar.Schema.V4 as V4
-import qualified Spar.Schema.V5 as V5
-import qualified Spar.Schema.V6 as V6
-import qualified Spar.Schema.V7 as V7
-import qualified Spar.Schema.V8 as V8
-import qualified Spar.Schema.V9 as V9
-import qualified System.Logger.Extended as Log
+import Spar.Schema.V0 qualified as V0
+import Spar.Schema.V1 qualified as V1
+import Spar.Schema.V10 qualified as V10
+import Spar.Schema.V11 qualified as V11
+import Spar.Schema.V12 qualified as V12
+import Spar.Schema.V13 qualified as V13
+import Spar.Schema.V14 qualified as V14
+import Spar.Schema.V15 qualified as V15
+import Spar.Schema.V16 qualified as V16
+import Spar.Schema.V17 qualified as V17
+import Spar.Schema.V18 qualified as V18
+import Spar.Schema.V19 qualified as V19
+import Spar.Schema.V2 qualified as V2
+import Spar.Schema.V20 qualified as V20
+import Spar.Schema.V21 qualified as V21
+import Spar.Schema.V3 qualified as V3
+import Spar.Schema.V4 qualified as V4
+import Spar.Schema.V5 qualified as V5
+import Spar.Schema.V6 qualified as V6
+import Spar.Schema.V7 qualified as V7
+import Spar.Schema.V8 qualified as V8
+import Spar.Schema.V9 qualified as V9
+import System.Logger.Extended qualified as Log
import Util.Options
main :: IO ()
diff --git a/services/spar/src/Spar/Scim.hs b/services/spar/src/Spar/Scim.hs
index 18060c4d64..f8277e6513 100644
--- a/services/spar/src/Spar/Scim.hs
+++ b/services/spar/src/Spar/Scim.hs
@@ -63,14 +63,14 @@ module Spar.Scim
where
import Data.ByteString (toStrict)
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
+import Data.Text qualified as T
+import Data.Text.Encoding qualified as T
import Data.Text.Encoding.Error
import Imports
import Polysemy
import Polysemy.Error (Error, fromExceptionSem, runError, throw, try)
import Polysemy.Input (Input)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Servant
import Servant.Server.Generic (AsServerT)
import Spar.App (sparToServerErrorWithLogging, throwSparSem)
@@ -91,13 +91,13 @@ import Spar.Sem.ScimExternalIdStore (ScimExternalIdStore)
import Spar.Sem.ScimTokenStore (ScimTokenStore)
import Spar.Sem.ScimUserTimesStore (ScimUserTimesStore)
import System.Logger (Msg)
-import qualified Web.Scim.Capabilities.MetaSchema as Scim.Meta
-import qualified Web.Scim.Class.Group as Scim.Group
-import qualified Web.Scim.Class.User as Scim.User
-import qualified Web.Scim.Handler as Scim
-import qualified Web.Scim.Schema.Error as Scim
-import qualified Web.Scim.Schema.Schema as Scim.Schema
-import qualified Web.Scim.Server as Scim
+import Web.Scim.Capabilities.MetaSchema qualified as Scim.Meta
+import Web.Scim.Class.Group qualified as Scim.Group
+import Web.Scim.Class.User qualified as Scim.User
+import Web.Scim.Handler qualified as Scim
+import Web.Scim.Schema.Error qualified as Scim
+import Web.Scim.Schema.Schema qualified as Scim.Schema
+import Web.Scim.Server qualified as Scim
import Wire.API.Routes.Public.Spar
import Wire.API.User.Scim
import Wire.ScimSubsystem
diff --git a/services/spar/src/Spar/Scim/Auth.hs b/services/spar/src/Spar/Scim/Auth.hs
index 1f7b824ce1..3cc101da45 100644
--- a/services/spar/src/Spar/Scim/Auth.hs
+++ b/services/spar/src/Spar/Scim/Auth.hs
@@ -36,40 +36,40 @@ module Spar.Scim.Auth
where
import Control.Lens hiding (Strict, (.=))
-import qualified Data.ByteString.Base64 as ES
+import Data.ByteString.Base64 qualified as ES
import Data.Code as Code
import Data.Id
import Data.Misc
-import qualified Data.Text.Encoding as T
+import Data.Text.Encoding qualified as T
import Data.Text.Encoding.Error
import Imports
import Polysemy
import Polysemy.Error
import Polysemy.Input
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Servant (NoContent (NoContent), ServerT, (:<|>) ((:<|>)))
import Spar.App (throwSparSem)
-import qualified Spar.Error as E
-import qualified Spar.Intra.BrigApp as Intra.Brig
+import Spar.Error qualified as E
+import Spar.Intra.BrigApp qualified as Intra.Brig
import Spar.Options
import Spar.Sem.BrigAccess (BrigAccess)
-import qualified Spar.Sem.BrigAccess as BrigAccess
+import Spar.Sem.BrigAccess qualified as BrigAccess
import Spar.Sem.GalleyAccess (GalleyAccess)
import Spar.Sem.IdPConfigStore (IdPConfigStore)
-import qualified Spar.Sem.IdPConfigStore as IdPConfigStore
+import Spar.Sem.IdPConfigStore qualified as IdPConfigStore
import Spar.Sem.ScimTokenStore (ScimTokenStore)
-import qualified Spar.Sem.ScimTokenStore as ScimTokenStore
-import qualified Web.Scim.Class.Auth as Scim.Class.Auth
-import qualified Web.Scim.Handler as Scim
-import qualified Web.Scim.Schema.Error as Scim
+import Spar.Sem.ScimTokenStore qualified as ScimTokenStore
+import Web.Scim.Class.Auth qualified as Scim.Class.Auth
+import Web.Scim.Handler qualified as Scim
+import Web.Scim.Schema.Error qualified as Scim
import Wire.API.Routes.Named
import Wire.API.Routes.Public.Spar (APIScimToken)
import Wire.API.User as User
import Wire.API.User.Scim as Api
import Wire.Sem.Now (Now)
-import qualified Wire.Sem.Now as Now
+import Wire.Sem.Now qualified as Now
import Wire.Sem.Random (Random)
-import qualified Wire.Sem.Random as Random
+import Wire.Sem.Random qualified as Random
-- | An instance that tells @hscim@ how authentication should be done for SCIM routes.
instance (Member ScimTokenStore r) => Scim.Class.Auth.AuthDB SparTag (Sem r) where
diff --git a/services/spar/src/Spar/Scim/Types.hs b/services/spar/src/Spar/Scim/Types.hs
index b2b6b360af..2bc1681c49 100644
--- a/services/spar/src/Spar/Scim/Types.hs
+++ b/services/spar/src/Spar/Scim/Types.hs
@@ -34,8 +34,8 @@ import Control.Lens (view)
import Imports
import Test.QuickCheck (Arbitrary (..))
import Test.QuickCheck.Gen (elements)
-import qualified Web.Scim.Schema.Common as Scim
-import qualified Web.Scim.Schema.User as Scim.User
+import Web.Scim.Schema.Common qualified as Scim
+import Web.Scim.Schema.User qualified as Scim.User
import Wire.API.User (AccountStatus (..))
import Wire.API.User.RichInfo (RichInfo (..), normalizeRichInfoAssocList)
import Wire.API.User.Scim (ScimUserExtra (..), SparTag, sueRichInfo)
diff --git a/services/spar/src/Spar/Scim/User.hs b/services/spar/src/Spar/Scim/User.hs
index aaf4d56d41..1f0ac2c14e 100644
--- a/services/spar/src/Spar/Scim/User.hs
+++ b/services/spar/src/Spar/Scim/User.hs
@@ -44,82 +44,82 @@ module Spar.Scim.User
)
where
-import qualified Control.Applicative as Applicative (empty)
+import Control.Applicative qualified as Applicative (empty)
import Control.Lens hiding (op)
import Control.Monad.Error.Class (MonadError)
import Control.Monad.Except (throwError)
import Control.Monad.Trans.Except (mapExceptT)
import Control.Monad.Trans.Maybe (MaybeT (MaybeT), runMaybeT)
import Crypto.Hash (Digest, SHA256, hashlazy)
-import qualified Data.Aeson as Aeson
-import qualified Data.Aeson.Text as Aeson
+import Data.Aeson qualified as Aeson
+import Data.Aeson.Text qualified as Aeson
import Data.ByteString (toStrict)
import Data.ByteString.Conversion (fromByteString, toByteString, toByteString')
-import qualified Data.ByteString.UTF8 as UTF8
+import Data.ByteString.UTF8 qualified as UTF8
import Data.Handle (Handle, fromHandle, parseHandle)
import Data.Id (Id (..), TeamId, UserId, idToText)
import Data.Json.Util (UTCTimeMillis, fromUTCTimeMillis, toUTCTimeMillis)
-import qualified Data.Text as Text
-import qualified Data.Text.Encoding as Text
+import Data.Text qualified as Text
+import Data.Text.Encoding qualified as Text
import Data.Text.Encoding.Error
-import qualified Data.Text.Lazy as LText
+import Data.Text.Lazy qualified as LText
import Data.These
import Data.These.Combinators
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Imports
import Network.URI (URI, parseURI)
import Polysemy
import Polysemy.Error (Error, runError, throw)
import Polysemy.Input
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.App (getUserByUrefUnsafe, getUserByUrefViaOldIssuerUnsafe, getUserIdByScimExternalId)
import qualified Spar.App
import Spar.Intra.BrigApp as Intra
-import qualified Spar.Intra.BrigApp as Brig
+import Spar.Intra.BrigApp qualified as Brig
import Spar.Options
import Spar.Scim.Auth ()
import Spar.Scim.Types
-import qualified Spar.Scim.Types as ST
+import Spar.Scim.Types qualified as ST
import Spar.Sem.BrigAccess (BrigAccess, getAccount)
-import qualified Spar.Sem.BrigAccess as BrigAccess
+import Spar.Sem.BrigAccess qualified as BrigAccess
import Spar.Sem.GalleyAccess as GalleyAccess
import Spar.Sem.IdPConfigStore (IdPConfigStore)
-import qualified Spar.Sem.IdPConfigStore as IdPConfigStore
+import Spar.Sem.IdPConfigStore qualified as IdPConfigStore
import Spar.Sem.SAMLUserStore (SAMLUserStore)
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
import Spar.Sem.ScimExternalIdStore (ScimExternalIdStore)
-import qualified Spar.Sem.ScimExternalIdStore as ScimExternalIdStore
+import Spar.Sem.ScimExternalIdStore qualified as ScimExternalIdStore
import Spar.Sem.ScimUserTimesStore (ScimUserTimesStore)
-import qualified Spar.Sem.ScimUserTimesStore as ScimUserTimesStore
-import qualified System.Logger.Class as Log
+import Spar.Sem.ScimUserTimesStore qualified as ScimUserTimesStore
+import System.Logger.Class qualified as Log
import System.Logger.Message (Msg)
-import qualified URI.ByteString as URIBS
+import URI.ByteString qualified as URIBS
import Util.Logging (logFunction, logHandle, logTeam, logUser, sha256String)
-import qualified Web.Scim.Class.User as Scim
+import Web.Scim.Class.User qualified as Scim
import Web.Scim.Filter (Filter (..), rAttrPath, rCompareOp)
-import qualified Web.Scim.Filter as Scim
-import qualified Web.Scim.Handler as Scim
-import qualified Web.Scim.Schema.Common as Scim
-import qualified Web.Scim.Schema.Error as Scim
-import qualified Web.Scim.Schema.ListResponse as Scim
-import qualified Web.Scim.Schema.Meta as Scim
-import qualified Web.Scim.Schema.ResourceType as Scim
-import qualified Web.Scim.Schema.User as Scim
-import qualified Web.Scim.Schema.User as Scim.User (schemas)
-import qualified Web.Scim.Schema.User.Email as Scim.Email
-import qualified Wire.API.Team.Member as Member
+import Web.Scim.Filter qualified as Scim
+import Web.Scim.Handler qualified as Scim
+import Web.Scim.Schema.Common qualified as Scim
+import Web.Scim.Schema.Error qualified as Scim
+import Web.Scim.Schema.ListResponse qualified as Scim
+import Web.Scim.Schema.Meta qualified as Scim
+import Web.Scim.Schema.ResourceType qualified as Scim
+import Web.Scim.Schema.User qualified as Scim
+import Web.Scim.Schema.User qualified as Scim.User (schemas)
+import Web.Scim.Schema.User.Email qualified as Scim.Email
+import Wire.API.Team.Member qualified as Member
import Wire.API.Team.Role
import Wire.API.User
import Wire.API.User.IdentityProvider (IdP)
-import qualified Wire.API.User.RichInfo as RI
+import Wire.API.User.RichInfo qualified as RI
import Wire.API.User.Scim (ScimTokenInfo (..), ValidScimId (..))
-import qualified Wire.API.User.Scim as ST
+import Wire.API.User.Scim qualified as ST
import Wire.Sem.Logger (Logger)
-import qualified Wire.Sem.Logger as Logger
+import Wire.Sem.Logger qualified as Logger
import Wire.Sem.Now (Now)
-import qualified Wire.Sem.Now as Now
+import Wire.Sem.Now qualified as Now
import Wire.Sem.Random (Random)
-import qualified Wire.Sem.Random as Random
+import Wire.Sem.Random qualified as Random
----------------------------------------------------------------------------
-- UserDB instance
diff --git a/services/spar/src/Spar/Sem/AReqIDStore.hs b/services/spar/src/Spar/Sem/AReqIDStore.hs
index 7b5b20b1db..59c20c36bf 100644
--- a/services/spar/src/Spar/Sem/AReqIDStore.hs
+++ b/services/spar/src/Spar/Sem/AReqIDStore.hs
@@ -28,7 +28,7 @@ where
import Imports
import Polysemy
import SAML2.WebSSO.Types (Issuer)
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Wire.API.User.Saml (AReqId)
data AReqIDStore m a where
diff --git a/services/spar/src/Spar/Sem/AReqIDStore/Cassandra.hs b/services/spar/src/Spar/Sem/AReqIDStore/Cassandra.hs
index ad6d8c3e1f..979231c5a6 100644
--- a/services/spar/src/Spar/Sem/AReqIDStore/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/AReqIDStore/Cassandra.hs
@@ -30,14 +30,14 @@ import Imports
import Polysemy
import Polysemy.Error
import Polysemy.Input (Input, input)
-import qualified SAML2.WebSSO as SAML
-import qualified Spar.Data as Data
+import SAML2.WebSSO qualified as SAML
+import Spar.Data qualified as Data
import Spar.Data.Instances ()
import Spar.Options
import Spar.Sem.AReqIDStore
import Wire.API.User.Saml
import Wire.Sem.Now (Now)
-import qualified Wire.Sem.Now as Now
+import Wire.Sem.Now qualified as Now
aReqIDStoreToCassandra ::
forall m r a.
diff --git a/services/spar/src/Spar/Sem/AReqIDStore/Mem.hs b/services/spar/src/Spar/Sem/AReqIDStore/Mem.hs
index 84342987ca..bf873eef95 100644
--- a/services/spar/src/Spar/Sem/AReqIDStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/AReqIDStore/Mem.hs
@@ -22,12 +22,12 @@ module Spar.Sem.AReqIDStore.Mem
)
where
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State
import SAML2.WebSSO.Types (Issuer)
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Spar.Sem.AReqIDStore
import Wire.API.User.Saml (AReqId)
import Wire.Sem.Now
diff --git a/services/spar/src/Spar/Sem/AssIDStore.hs b/services/spar/src/Spar/Sem/AssIDStore.hs
index dd5ece2dc1..5004f76c8d 100644
--- a/services/spar/src/Spar/Sem/AssIDStore.hs
+++ b/services/spar/src/Spar/Sem/AssIDStore.hs
@@ -27,7 +27,7 @@ where
import Imports
import Polysemy
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Wire.API.User.Saml (AssId)
data AssIDStore m a where
diff --git a/services/spar/src/Spar/Sem/AssIDStore/Cassandra.hs b/services/spar/src/Spar/Sem/AssIDStore/Cassandra.hs
index 8f62d34ae6..c9a415cc5d 100644
--- a/services/spar/src/Spar/Sem/AssIDStore/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/AssIDStore/Cassandra.hs
@@ -30,14 +30,14 @@ import Imports
import Polysemy
import Polysemy.Error
import Polysemy.Input
-import qualified SAML2.WebSSO as SAML
-import qualified Spar.Data as Data
+import SAML2.WebSSO qualified as SAML
+import Spar.Data qualified as Data
import Spar.Data.Instances ()
import Spar.Options
import Spar.Sem.AssIDStore
import Wire.API.User.Saml
import Wire.Sem.Now (Now)
-import qualified Wire.Sem.Now as Now
+import Wire.Sem.Now qualified as Now
assIDStoreToCassandra ::
forall m r a.
diff --git a/services/spar/src/Spar/Sem/AssIDStore/Mem.hs b/services/spar/src/Spar/Sem/AssIDStore/Mem.hs
index 01a7163083..878b356c5a 100644
--- a/services/spar/src/Spar/Sem/AssIDStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/AssIDStore/Mem.hs
@@ -22,11 +22,11 @@ module Spar.Sem.AssIDStore.Mem
)
where
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Spar.Sem.AssIDStore
import Wire.API.User.Saml (AssId)
import Wire.Sem.Now
diff --git a/services/spar/src/Spar/Sem/BrigAccess.hs b/services/spar/src/Spar/Sem/BrigAccess.hs
index 8530786359..93fffba948 100644
--- a/services/spar/src/Spar/Sem/BrigAccess.hs
+++ b/services/spar/src/Spar/Sem/BrigAccess.hs
@@ -52,7 +52,7 @@ import Data.Id (TeamId, UserId)
import Data.Misc (PlainTextPassword6)
import Imports
import Polysemy
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Web.Cookie
import Wire.API.Locale
import Wire.API.Team.Role
diff --git a/services/spar/src/Spar/Sem/BrigAccess/Http.hs b/services/spar/src/Spar/Sem/BrigAccess/Http.hs
index b3623597d3..8058f06092 100644
--- a/services/spar/src/Spar/Sem/BrigAccess/Http.hs
+++ b/services/spar/src/Spar/Sem/BrigAccess/Http.hs
@@ -25,10 +25,10 @@ import Imports
import Polysemy
import Polysemy.Error (Error)
import Spar.Error (SparError)
-import qualified Spar.Intra.Brig as Intra
+import Spar.Intra.Brig qualified as Intra
import Spar.Sem.BrigAccess
import Spar.Sem.Utils (RunHttpEnv (..), viaRunHttp)
-import qualified System.Logger as TinyLog
+import System.Logger qualified as TinyLog
import Wire.Sem.Logger (Logger)
brigAccessToHttp ::
diff --git a/services/spar/src/Spar/Sem/DefaultSsoCode.hs b/services/spar/src/Spar/Sem/DefaultSsoCode.hs
index 5949f85970..6213f402ba 100644
--- a/services/spar/src/Spar/Sem/DefaultSsoCode.hs
+++ b/services/spar/src/Spar/Sem/DefaultSsoCode.hs
@@ -28,7 +28,7 @@ where
import Imports
import Polysemy
import Polysemy.Check (deriveGenericK)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
data DefaultSsoCode m a where
Get :: DefaultSsoCode m (Maybe SAML.IdPId)
diff --git a/services/spar/src/Spar/Sem/DefaultSsoCode/Cassandra.hs b/services/spar/src/Spar/Sem/DefaultSsoCode/Cassandra.hs
index 680c8c0ec7..ea5f6aaf24 100644
--- a/services/spar/src/Spar/Sem/DefaultSsoCode/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/DefaultSsoCode/Cassandra.hs
@@ -27,7 +27,7 @@ where
import Cassandra
import Imports
import Polysemy
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Spar.Data.Instances ()
import Spar.Sem.DefaultSsoCode
import {- instance Cql SAML.IdPId -} Wire.DomainRegistrationStore.Cassandra ()
diff --git a/services/spar/src/Spar/Sem/DefaultSsoCode/Mem.hs b/services/spar/src/Spar/Sem/DefaultSsoCode/Mem.hs
index c684eaa1a6..b50f0b12dc 100644
--- a/services/spar/src/Spar/Sem/DefaultSsoCode/Mem.hs
+++ b/services/spar/src/Spar/Sem/DefaultSsoCode/Mem.hs
@@ -25,7 +25,7 @@ where
import Imports
import Polysemy
import Polysemy.State (get, put, runState)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Sem.DefaultSsoCode (DefaultSsoCode (..))
defaultSsoCodeToMem :: Sem (DefaultSsoCode ': r) a -> Sem r (Maybe SAML.IdPId, a)
diff --git a/services/spar/src/Spar/Sem/DefaultSsoCode/Spec.hs b/services/spar/src/Spar/Sem/DefaultSsoCode/Spec.hs
index 3f83e9b345..ffe59350b3 100644
--- a/services/spar/src/Spar/Sem/DefaultSsoCode/Spec.hs
+++ b/services/spar/src/Spar/Sem/DefaultSsoCode/Spec.hs
@@ -24,7 +24,7 @@ import Imports
import Polysemy
import Polysemy.Check
import SAML2.WebSSO.Types
-import qualified Spar.Sem.DefaultSsoCode as E
+import Spar.Sem.DefaultSsoCode qualified as E
import Test.Hspec
import Test.Hspec.QuickCheck
import Test.QuickCheck
diff --git a/services/spar/src/Spar/Sem/GalleyAccess/Http.hs b/services/spar/src/Spar/Sem/GalleyAccess/Http.hs
index 793bac9c27..5903878e31 100644
--- a/services/spar/src/Spar/Sem/GalleyAccess/Http.hs
+++ b/services/spar/src/Spar/Sem/GalleyAccess/Http.hs
@@ -27,10 +27,10 @@ import Imports hiding (log)
import Polysemy
import Polysemy.Error
import Spar.Error (SparError)
-import qualified Spar.Intra.Galley as Intra
+import Spar.Intra.Galley qualified as Intra
import Spar.Sem.GalleyAccess
import Spar.Sem.Utils
-import qualified System.Logger as TinyLog
+import System.Logger qualified as TinyLog
import Wire.Sem.Logger (Logger)
galleyAccessToHttp ::
diff --git a/services/spar/src/Spar/Sem/IdPConfigStore.hs b/services/spar/src/Spar/Sem/IdPConfigStore.hs
index bd7cb02298..d3aea49017 100644
--- a/services/spar/src/Spar/Sem/IdPConfigStore.hs
+++ b/services/spar/src/Spar/Sem/IdPConfigStore.hs
@@ -40,8 +40,8 @@ import Data.Id
import Imports
import Polysemy
import Polysemy.Check (deriveGenericK)
-import qualified SAML2.WebSSO as SAML
-import qualified Wire.API.User.IdentityProvider as IP
+import SAML2.WebSSO qualified as SAML
+import Wire.API.User.IdentityProvider qualified as IP
newtype Replaced = Replaced SAML.IdPId
deriving (Eq, Ord, Show)
diff --git a/services/spar/src/Spar/Sem/IdPConfigStore/Cassandra.hs b/services/spar/src/Spar/Sem/IdPConfigStore/Cassandra.hs
index ca771dbab7..8242a2dca6 100644
--- a/services/spar/src/Spar/Sem/IdPConfigStore/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/IdPConfigStore/Cassandra.hs
@@ -27,20 +27,20 @@ import Cassandra
import Control.Lens ((^.))
import Control.Monad.Except
import Data.Id
-import qualified Data.List.NonEmpty as NL
+import Data.List.NonEmpty qualified as NL
import Data.Text (pack)
import Data.X509 (SignedCertificate)
import Imports
import Polysemy
import Polysemy.Error (Error, throw)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Data.Instances ()
import Spar.Error
import Spar.Sem.IdPConfigStore (IdPConfigStore (..), Replaced (..), Replacing (..))
import URI.ByteString
import Wire.API.Routes.Public (ZHostValue)
import Wire.API.User.IdentityProvider hiding (apiVersion, oldIssuers, replacedBy, team)
-import qualified Wire.API.User.IdentityProvider as IP
+import Wire.API.User.IdentityProvider qualified as IP
import {- instance Cql SAML.IdPId -} Wire.DomainRegistrationStore.Cassandra ()
idPToCassandra ::
diff --git a/services/spar/src/Spar/Sem/IdPConfigStore/Mem.hs b/services/spar/src/Spar/Sem/IdPConfigStore/Mem.hs
index a7f0ff7c4f..06e42aff28 100644
--- a/services/spar/src/Spar/Sem/IdPConfigStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/IdPConfigStore/Mem.hs
@@ -21,15 +21,15 @@ module Spar.Sem.IdPConfigStore.Mem (idPToMem, TypedState) where
import Control.Lens ((.~), (^.))
import Data.Id (TeamId)
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Spar.Sem.IdPConfigStore (IdPConfigStore (..), Replaced (..), Replacing (..))
import Wire.API.User.IdentityProvider (IdPHandle (IdPHandle))
-import qualified Wire.API.User.IdentityProvider as IP
-import qualified Wire.API.User.IdentityProvider as SAML
+import Wire.API.User.IdentityProvider qualified as IP
+import Wire.API.User.IdentityProvider qualified as SAML
type TypedState = Map SAML.IdPId IP.IdP
diff --git a/services/spar/src/Spar/Sem/IdPRawMetadataStore.hs b/services/spar/src/Spar/Sem/IdPRawMetadataStore.hs
index d6425df9ca..78b07082af 100644
--- a/services/spar/src/Spar/Sem/IdPRawMetadataStore.hs
+++ b/services/spar/src/Spar/Sem/IdPRawMetadataStore.hs
@@ -28,7 +28,7 @@ where
import Imports
import Polysemy
import Polysemy.Check (deriveGenericK)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
data IdPRawMetadataStore m a where
Store :: SAML.IdPId -> Text -> IdPRawMetadataStore m ()
diff --git a/services/spar/src/Spar/Sem/IdPRawMetadataStore/Cassandra.hs b/services/spar/src/Spar/Sem/IdPRawMetadataStore/Cassandra.hs
index 812442d958..1947efed66 100644
--- a/services/spar/src/Spar/Sem/IdPRawMetadataStore/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/IdPRawMetadataStore/Cassandra.hs
@@ -27,7 +27,7 @@ import Cassandra as Cas
import Control.Lens
import Imports
import Polysemy
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Data.Instances ()
import Spar.Sem.IdPRawMetadataStore
import {- instance Cql SAML.IdPId -} Wire.DomainRegistrationStore.Cassandra ()
diff --git a/services/spar/src/Spar/Sem/IdPRawMetadataStore/Mem.hs b/services/spar/src/Spar/Sem/IdPRawMetadataStore/Mem.hs
index ace943c0a3..d172aa21ee 100644
--- a/services/spar/src/Spar/Sem/IdPRawMetadataStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/IdPRawMetadataStore/Mem.hs
@@ -19,11 +19,11 @@
module Spar.Sem.IdPRawMetadataStore.Mem (idpRawMetadataStoreToMem, RawState) where
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State (State, gets, modify, runState)
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Spar.Sem.IdPRawMetadataStore
type RawState = Map SAML.IdPId Text
diff --git a/services/spar/src/Spar/Sem/IdPRawMetadataStore/Spec.hs b/services/spar/src/Spar/Sem/IdPRawMetadataStore/Spec.hs
index 1a8805e8af..7b085b95ec 100644
--- a/services/spar/src/Spar/Sem/IdPRawMetadataStore/Spec.hs
+++ b/services/spar/src/Spar/Sem/IdPRawMetadataStore/Spec.hs
@@ -24,7 +24,7 @@ import Imports
import Polysemy
import Polysemy.Check
import SAML2.WebSSO.Types (IdPId)
-import qualified Spar.Sem.IdPRawMetadataStore as E
+import Spar.Sem.IdPRawMetadataStore qualified as E
import Test.Hspec
import Test.Hspec.QuickCheck
import Test.QuickCheck
diff --git a/services/spar/src/Spar/Sem/Reporter.hs b/services/spar/src/Spar/Sem/Reporter.hs
index 77d71f0dce..b96f0099d1 100644
--- a/services/spar/src/Spar/Sem/Reporter.hs
+++ b/services/spar/src/Spar/Sem/Reporter.hs
@@ -24,7 +24,7 @@ module Spar.Sem.Reporter
where
import Imports
-import qualified Network.Wai as Wai
+import Network.Wai qualified as Wai
import Network.Wai.Utilities.Error (Error)
import Polysemy
diff --git a/services/spar/src/Spar/Sem/Reporter/Wai.hs b/services/spar/src/Spar/Sem/Reporter/Wai.hs
index e2d0b66ef6..45108e34aa 100644
--- a/services/spar/src/Spar/Sem/Reporter/Wai.hs
+++ b/services/spar/src/Spar/Sem/Reporter/Wai.hs
@@ -21,11 +21,11 @@ module Spar.Sem.Reporter.Wai
where
import Imports
-import qualified Network.Wai.Utilities.Server as Wai
+import Network.Wai.Utilities.Server qualified as Wai
import Polysemy
import Polysemy.Input
import Spar.Sem.Reporter
-import qualified System.Logger as TinyLog
+import System.Logger qualified as TinyLog
reporterToTinyLogWai ::
( Member (Embed IO) r,
diff --git a/services/spar/src/Spar/Sem/SAML2/Library.hs b/services/spar/src/Spar/Sem/SAML2/Library.hs
index 78e8c08c3c..89d3517caa 100644
--- a/services/spar/src/Spar/Sem/SAML2/Library.hs
+++ b/services/spar/src/Spar/Sem/SAML2/Library.hs
@@ -21,10 +21,10 @@
module Spar.Sem.SAML2.Library (saml2ToSaml2WebSso) where
-import qualified Control.Monad.Catch as Catch
+import Control.Monad.Catch qualified as Catch
import Control.Monad.Except
import Data.Id (TeamId)
-import qualified Data.Text.Lazy as LText
+import Data.Text.Lazy qualified as LText
import Imports
import Polysemy
import Polysemy.Error
@@ -32,19 +32,19 @@ import Polysemy.Final
import Polysemy.Input
import Polysemy.Internal.Tactics
import SAML2.WebSSO hiding (Error)
-import qualified SAML2.WebSSO as SAML hiding (Error)
+import SAML2.WebSSO qualified as SAML hiding (Error)
import Spar.Error (SparCustomError (..), SparError)
import Spar.Options
import Spar.Sem.AReqIDStore (AReqIDStore)
-import qualified Spar.Sem.AReqIDStore as AReqIDStore
+import Spar.Sem.AReqIDStore qualified as AReqIDStore
import Spar.Sem.AssIDStore (AssIDStore)
-import qualified Spar.Sem.AssIDStore as AssIDStore
+import Spar.Sem.AssIDStore qualified as AssIDStore
import Spar.Sem.IdPConfigStore (IdPConfigStore)
-import qualified Spar.Sem.IdPConfigStore as IdPConfigStore
+import Spar.Sem.IdPConfigStore qualified as IdPConfigStore
import Spar.Sem.SAML2
import Wire.API.User.IdentityProvider (WireIdP)
import Wire.Sem.Logger (Logger)
-import qualified Wire.Sem.Logger as Logger
+import Wire.Sem.Logger qualified as Logger
wrapMonadClientSPImpl ::
( Member (Error SparError) r,
diff --git a/services/spar/src/Spar/Sem/SAMLUserStore.hs b/services/spar/src/Spar/Sem/SAMLUserStore.hs
index c23f047cff..259b933720 100644
--- a/services/spar/src/Spar/Sem/SAMLUserStore.hs
+++ b/services/spar/src/Spar/Sem/SAMLUserStore.hs
@@ -32,7 +32,7 @@ import Cassandra (Page)
import Data.Id
import Imports
import Polysemy
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
data SAMLUserStore m a where
Insert :: SAML.UserRef -> UserId -> SAMLUserStore m ()
diff --git a/services/spar/src/Spar/Sem/SAMLUserStore/Cassandra.hs b/services/spar/src/Spar/Sem/SAMLUserStore/Cassandra.hs
index 3436a83acd..e89761b0e6 100644
--- a/services/spar/src/Spar/Sem/SAMLUserStore/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/SAMLUserStore/Cassandra.hs
@@ -30,8 +30,8 @@ import Control.Lens
import Data.Id
import Imports
import Polysemy
-import qualified SAML2.WebSSO as SAML
-import qualified Spar.Data as Data
+import SAML2.WebSSO qualified as SAML
+import Spar.Data qualified as Data
import Spar.Data.Instances ()
import Spar.Sem.SAMLUserStore
diff --git a/services/spar/src/Spar/Sem/SAMLUserStore/Mem.hs b/services/spar/src/Spar/Sem/SAMLUserStore/Mem.hs
index 131ae26681..2f9efc0525 100644
--- a/services/spar/src/Spar/Sem/SAMLUserStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/SAMLUserStore/Mem.hs
@@ -25,12 +25,12 @@ where
import Control.Lens (view)
import Data.Id
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State (gets, modify, runState)
import SAML2.WebSSO (uidTenant)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Sem.SAMLUserStore
newtype UserRefOrd = UserRefOrd {unUserRefOrd :: SAML.UserRef}
diff --git a/services/spar/src/Spar/Sem/SamlProtocolSettings.hs b/services/spar/src/Spar/Sem/SamlProtocolSettings.hs
index 8b0bb3f34c..98c0e758f7 100644
--- a/services/spar/src/Spar/Sem/SamlProtocolSettings.hs
+++ b/services/spar/src/Spar/Sem/SamlProtocolSettings.hs
@@ -29,8 +29,8 @@ import Data.Domain
import Data.Id (TeamId)
import Imports
import Polysemy
-import qualified SAML2.WebSSO.Types as SAML
-import qualified URI.ByteString as URI
+import SAML2.WebSSO.Types qualified as SAML
+import URI.ByteString qualified as URI
data SamlProtocolSettings m a where
SpIssuer :: Maybe TeamId -> Maybe Domain -> SamlProtocolSettings m (Maybe SAML.Issuer)
diff --git a/services/spar/src/Spar/Sem/SamlProtocolSettings/Servant.hs b/services/spar/src/Spar/Sem/SamlProtocolSettings/Servant.hs
index 787700a46a..aea0d9da80 100644
--- a/services/spar/src/Spar/Sem/SamlProtocolSettings/Servant.hs
+++ b/services/spar/src/Spar/Sem/SamlProtocolSettings/Servant.hs
@@ -25,7 +25,7 @@ where
import Imports
import Polysemy
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Sem.SamlProtocolSettings
import Wire.API.Routes.Public.Spar
diff --git a/services/spar/src/Spar/Sem/ScimExternalIdStore/Mem.hs b/services/spar/src/Spar/Sem/ScimExternalIdStore/Mem.hs
index 5ab14ccd4a..0c2203e044 100644
--- a/services/spar/src/Spar/Sem/ScimExternalIdStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/ScimExternalIdStore/Mem.hs
@@ -23,7 +23,7 @@ module Spar.Sem.ScimExternalIdStore.Mem
where
import Data.Id (TeamId, UserId)
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State
diff --git a/services/spar/src/Spar/Sem/ScimExternalIdStore/Spec.hs b/services/spar/src/Spar/Sem/ScimExternalIdStore/Spec.hs
index eab1ba7d47..8e11fd35f6 100644
--- a/services/spar/src/Spar/Sem/ScimExternalIdStore/Spec.hs
+++ b/services/spar/src/Spar/Sem/ScimExternalIdStore/Spec.hs
@@ -25,7 +25,7 @@ import Imports
import Polysemy
import Polysemy.Check
import Spar.Scim.Types (ScimUserCreationStatus)
-import qualified Spar.Sem.ScimExternalIdStore as E
+import Spar.Sem.ScimExternalIdStore qualified as E
import Test.Hspec
import Test.Hspec.QuickCheck
import Test.QuickCheck
diff --git a/services/spar/src/Spar/Sem/ScimTokenStore/Cassandra.hs b/services/spar/src/Spar/Sem/ScimTokenStore/Cassandra.hs
index d708b2f011..5c79ec92c3 100644
--- a/services/spar/src/Spar/Sem/ScimTokenStore/Cassandra.hs
+++ b/services/spar/src/Spar/Sem/ScimTokenStore/Cassandra.hs
@@ -29,7 +29,7 @@ import Data.Id
import Data.Time
import Imports
import Polysemy
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Data.Instances ()
import Spar.Sem.ScimTokenStore
import Text.RawString.QQ
diff --git a/services/spar/src/Spar/Sem/ScimTokenStore/Mem.hs b/services/spar/src/Spar/Sem/ScimTokenStore/Mem.hs
index 48b869fb0f..2b0f17b4b7 100644
--- a/services/spar/src/Spar/Sem/ScimTokenStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/ScimTokenStore/Mem.hs
@@ -22,7 +22,7 @@ module Spar.Sem.ScimTokenStore.Mem
)
where
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State
diff --git a/services/spar/src/Spar/Sem/ScimUserTimesStore/Mem.hs b/services/spar/src/Spar/Sem/ScimUserTimesStore/Mem.hs
index fa5f027d8a..695ce1271e 100644
--- a/services/spar/src/Spar/Sem/ScimUserTimesStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/ScimUserTimesStore/Mem.hs
@@ -24,7 +24,7 @@ where
import Data.Id (UserId)
import Data.Json.Util (UTCTimeMillis, toUTCTimeMillis)
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State
diff --git a/services/spar/src/Spar/Sem/Utils.hs b/services/spar/src/Spar/Sem/Utils.hs
index 381b288171..cdccbbbf30 100644
--- a/services/spar/src/Spar/Sem/Utils.hs
+++ b/services/spar/src/Spar/Sem/Utils.hs
@@ -28,23 +28,23 @@ where
import Bilge
import Cassandra as Cas
-import qualified Control.Monad.Catch as Catch
+import Control.Monad.Catch qualified as Catch
import Control.Monad.Except (ExceptT (..), MonadError, runExceptT)
-import qualified Data.Text.Lazy as LText
+import Data.Text.Lazy qualified as LText
import Imports hiding (log)
import Polysemy
import Polysemy.Error
import Polysemy.Final
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import Spar.Error
import Spar.Intra.Brig (MonadSparToBrig (..))
import Spar.Intra.Galley (MonadSparToGalley)
-import qualified Spar.Intra.Galley as Intra
-import qualified System.Logger as TinyLog
-import qualified System.Logger.Class as TinyLog
+import Spar.Intra.Galley qualified as Intra
+import System.Logger qualified as TinyLog
+import System.Logger.Class qualified as TinyLog
import Wire.API.User.Saml
import Wire.Sem.Logger (Logger)
-import qualified Wire.Sem.Logger as Logger
+import Wire.Sem.Logger qualified as Logger
-- | Run an embedded Cassandra 'Client' in @Final IO@.
interpretClientToIO ::
diff --git a/services/spar/src/Spar/Sem/VerdictFormatStore/Mem.hs b/services/spar/src/Spar/Sem/VerdictFormatStore/Mem.hs
index 12ecf2368a..a87cfaf327 100644
--- a/services/spar/src/Spar/Sem/VerdictFormatStore/Mem.hs
+++ b/services/spar/src/Spar/Sem/VerdictFormatStore/Mem.hs
@@ -22,16 +22,16 @@ module Spar.Sem.VerdictFormatStore.Mem
)
where
-import qualified Data.Map as M
+import Data.Map qualified as M
import Imports
import Polysemy
import Polysemy.State hiding (Get)
import SAML2.WebSSO (addTime)
-import qualified SAML2.WebSSO.Types as SAML
+import SAML2.WebSSO.Types qualified as SAML
import Spar.Sem.VerdictFormatStore
import Wire.API.User.Saml (AReqId, VerdictFormat)
import Wire.Sem.Now (Now, boolTTL)
-import qualified Wire.Sem.Now as Now
+import Wire.Sem.Now qualified as Now
verdictFormatStoreToMem ::
(Member Now r) =>
diff --git a/services/spar/test-integration/Test/LoggingSpec.hs b/services/spar/test-integration/Test/LoggingSpec.hs
index 6963808b3d..0c7cc2ffc7 100644
--- a/services/spar/test-integration/Test/LoggingSpec.hs
+++ b/services/spar/test-integration/Test/LoggingSpec.hs
@@ -24,13 +24,13 @@ import Control.Lens
import Data.String.Conversions
import Imports
import Network.HTTP.Types.Status (statusCode)
-import qualified Network.Wai.Test as HW
+import Network.Wai.Test qualified as HW
import Spar.App
import Spar.Run (mkApp)
import System.IO.Silently (capture)
import System.Logger as Log
-import qualified Test.Hspec.Wai as HW
-import qualified Test.Hspec.Wai.Internal as HW
+import Test.Hspec.Wai qualified as HW
+import Test.Hspec.Wai.Internal qualified as HW
import Util
spec :: SpecWith TestEnv
diff --git a/services/spar/test-integration/Test/Spar/APISpec.hs b/services/spar/test-integration/Test/Spar/APISpec.hs
index 0212cbd97a..61996285d0 100644
--- a/services/spar/test-integration/Test/Spar/APISpec.hs
+++ b/services/spar/test-integration/Test/Spar/APISpec.hs
@@ -32,17 +32,17 @@ import Data.ByteString.Conversion
import Data.Handle (fromHandle)
import Data.Id
import Data.List.NonEmpty (NonEmpty ((:|)))
-import qualified Data.List.NonEmpty as NonEmpty
+import Data.List.NonEmpty qualified as NonEmpty
import Data.Misc
import Data.Proxy
import Data.String.Conversions
-import qualified Data.Text as ST
-import qualified Data.Text as T
+import Data.Text qualified as ST
+import Data.Text qualified as T
import Data.Text.Ascii (decodeBase64, validateBase64)
-import qualified Data.UUID as UUID hiding (fromByteString, null)
-import qualified Data.UUID.V4 as UUID (nextRandom)
-import qualified Data.Vector as Vec
-import qualified Data.ZAuth.Token as ZAuth
+import Data.UUID qualified as UUID hiding (fromByteString, null)
+import Data.UUID.V4 qualified as UUID (nextRandom)
+import Data.Vector qualified as Vec
+import Data.ZAuth.Token qualified as ZAuth
import Imports hiding (head)
import Network.HTTP.Types (status200, status202)
import SAML2.WebSSO
@@ -65,29 +65,29 @@ import SAML2.WebSSO
rqIssuer,
(-/),
)
-import qualified SAML2.WebSSO as SAML
+import SAML2.WebSSO qualified as SAML
import SAML2.WebSSO.API.Example (SimpleSP)
import SAML2.WebSSO.Test.Lenses
import SAML2.WebSSO.Test.MockResponse
import SAML2.WebSSO.Test.Util
-import qualified Spar.Intra.BrigApp as Intra
+import Spar.Intra.BrigApp qualified as Intra
import Spar.Options
-import qualified Spar.Sem.AReqIDStore as AReqIDStore
-import qualified Spar.Sem.BrigAccess as BrigAccess
-import qualified Spar.Sem.IdPConfigStore as IdPEffect
+import Spar.Sem.AReqIDStore qualified as AReqIDStore
+import Spar.Sem.BrigAccess qualified as BrigAccess
+import Spar.Sem.IdPConfigStore qualified as IdPEffect
import Text.XML.DSig (SignPrivCreds, mkSignCredsWithCert)
-import qualified URI.ByteString as URI
+import URI.ByteString qualified as URI
import URI.ByteString.QQ (uri)
import Util.Core
import Util.Scim (createUser, filterBy, listUsers, randomScimUserWithEmail, randomScimUserWithNick, registerScimToken)
-import qualified Util.Scim as ScimT
+import Util.Scim qualified as ScimT
import Util.Types
-import qualified Web.Cookie as Cky
-import qualified Web.Scim.Class.User as Scim
-import qualified Web.Scim.Schema.Common as Scim
-import qualified Web.Scim.Schema.Meta as Scim
-import qualified Web.Scim.Schema.User as Scim
-import qualified Web.Scim.Schema.User.Email as Scim
+import Web.Cookie qualified as Cky
+import Web.Scim.Class.User qualified as Scim
+import Web.Scim.Schema.Common qualified as Scim
+import Web.Scim.Schema.Meta qualified as Scim
+import Web.Scim.Schema.User qualified as Scim
+import Web.Scim.Schema.User.Email qualified as Scim
import Wire.API.Team.Member (newTeamMemberDeleteData, rolePermissions)
import Wire.API.Team.Permission hiding (self)
import Wire.API.Team.Role
diff --git a/services/spar/test-integration/Test/Spar/AppSpec.hs b/services/spar/test-integration/Test/Spar/AppSpec.hs
index 07263bbb35..bd58597224 100644
--- a/services/spar/test-integration/Test/Spar/AppSpec.hs
+++ b/services/spar/test-integration/Test/Spar/AppSpec.hs
@@ -25,25 +25,25 @@ where
import Bilge
import Control.Lens
-import qualified Data.ByteString.Builder as Builder
+import Data.ByteString.Builder qualified as Builder
import Data.Id
-import qualified Data.List as List
+import Data.List qualified as List
import Data.String.Conversions
import Imports
import SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.Test.MockResponse as SAML
+import SAML2.WebSSO.Test.MockResponse qualified as SAML
import qualified Servant
-import qualified Spar.App as Spar
+import Spar.App qualified as Spar
import Spar.Orphans ()
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
-import qualified Text.XML as XML
-import qualified Text.XML.DSig as DSig
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
+import Text.XML qualified as XML
+import Text.XML.DSig qualified as DSig
import URI.ByteString as URI
import URI.ByteString.QQ (uri)
import Util
import Web.Cookie
import Wire.API.User.IdentityProvider (IdP)
-import qualified Wire.API.User.IdentityProvider as User
+import Wire.API.User.IdentityProvider qualified as User
spec :: SpecWith TestEnv
spec = describe "accessVerdict" $ do
diff --git a/services/spar/test-integration/Test/Spar/DataSpec.hs b/services/spar/test-integration/Test/Spar/DataSpec.hs
index ec4b589145..64c38b3b5f 100644
--- a/services/spar/test-integration/Test/Spar/DataSpec.hs
+++ b/services/spar/test-integration/Test/Spar/DataSpec.hs
@@ -31,12 +31,12 @@ import Spar.App as App
import Spar.Error (IdpDbError (IdpNotFound), SparCustomError (IdpDbError))
import Spar.Intra.BrigApp (veidFromUserSSOId)
import Spar.Options
-import qualified Spar.Sem.AReqIDStore as AReqIDStore
-import qualified Spar.Sem.AssIDStore as AssIDStore
-import qualified Spar.Sem.IdPConfigStore as IdPEffect
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
-import qualified Spar.Sem.ScimTokenStore as ScimTokenStore
-import qualified Spar.Sem.VerdictFormatStore as VerdictFormatStore
+import Spar.Sem.AReqIDStore qualified as AReqIDStore
+import Spar.Sem.AssIDStore qualified as AssIDStore
+import Spar.Sem.IdPConfigStore qualified as IdPEffect
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
+import Spar.Sem.ScimTokenStore qualified as ScimTokenStore
+import Spar.Sem.VerdictFormatStore qualified as VerdictFormatStore
import Type.Reflection (typeRep)
import URI.ByteString.QQ (uri)
import Util.Core
diff --git a/services/spar/test-integration/Test/Spar/Intra/BrigSpec.hs b/services/spar/test-integration/Test/Spar/Intra/BrigSpec.hs
index c97ad084a9..edbef69a10 100644
--- a/services/spar/test-integration/Test/Spar/Intra/BrigSpec.hs
+++ b/services/spar/test-integration/Test/Spar/Intra/BrigSpec.hs
@@ -22,14 +22,14 @@ where
import Control.Lens ((^.))
import Data.Id (Id (Id), UserId)
-import qualified Data.UUID as UUID
+import Data.UUID qualified as UUID
import Imports hiding (head)
-import qualified Spar.Intra.BrigApp as Intra
+import Spar.Intra.BrigApp qualified as Intra
import Spar.Sem.BrigAccess (getAccount)
-import qualified Spar.Sem.BrigAccess as BrigAccess
+import Spar.Sem.BrigAccess qualified as BrigAccess
import Test.QuickCheck
import Util
-import qualified Web.Scim.Schema.User as Scim.User
+import Web.Scim.Schema.User qualified as Scim.User
import Wire.API.User (DeleteUserResult (..), fromEmail)
spec :: SpecWith TestEnv
diff --git a/services/spar/test-integration/Test/Spar/Scim/AuthSpec.hs b/services/spar/test-integration/Test/Spar/Scim/AuthSpec.hs
index bbec16bdc2..c4fac47b04 100644
--- a/services/spar/test-integration/Test/Spar/Scim/AuthSpec.hs
+++ b/services/spar/test-integration/Test/Spar/Scim/AuthSpec.hs
@@ -31,9 +31,9 @@ import Bilge.Assert
import Cassandra as Cas
import Control.Lens
import Data.Aeson (encode)
-import qualified Data.ByteString.Base64 as ES
+import Data.ByteString.Base64 qualified as ES
import Data.ByteString.Conversion (toByteString')
-import qualified Data.Code as Code
+import Data.Code qualified as Code
import Data.Id (ScimTokenId, TeamId, UserId, randomId)
import Data.Misc
import Data.Range (unsafeRange)
@@ -43,17 +43,17 @@ import Data.Time (UTCTime)
import Data.Time.Clock (getCurrentTime)
import Imports
import OpenSSL.Random (randBytes)
-import qualified SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.Test.Util as SAML
+import SAML2.WebSSO qualified as SAML
+import SAML2.WebSSO.Test.Util qualified as SAML
import Spar.Scim
import Text.RawString.QQ (r)
import Util
import Wire.API.Team.Feature (featureNameBS)
-import qualified Wire.API.Team.Feature as Public
+import Wire.API.Team.Feature qualified as Public
import Wire.API.Team.Member (rolePermissions)
import Wire.API.Team.Role
import Wire.API.User (userEmail)
-import qualified Wire.API.User as Public
+import Wire.API.User qualified as Public
import Wire.API.User.Identity
-- | Tests for authentication and operations with provisioning tokens ('ScimToken's).
diff --git a/services/spar/test-integration/Test/Spar/Scim/UserSpec.hs b/services/spar/test-integration/Test/Spar/Scim/UserSpec.hs
index 48a631f3a2..8775c79569 100644
--- a/services/spar/test-integration/Test/Spar/Scim/UserSpec.hs
+++ b/services/spar/test-integration/Test/Spar/Scim/UserSpec.hs
@@ -37,14 +37,14 @@ import Control.Monad.Random (randomRIO)
import Control.Monad.Trans.Except
import Control.Monad.Trans.Maybe
import qualified Data.Aeson
-import qualified Data.Aeson as Aeson
+import Data.Aeson qualified as Aeson
import Data.Aeson.Lens (key, _String)
import Data.Aeson.QQ (aesonQQ)
import Data.Aeson.Types (fromJSON, toJSON)
import Data.ByteString (toStrict)
import Data.ByteString.Conversion
-import qualified Data.CaseInsensitive as CI
-import qualified Data.Csv as Csv
+import Data.CaseInsensitive qualified as CI
+import Data.Csv qualified as Csv
import Data.Handle (Handle, fromHandle, parseHandle, parseHandleEither)
import Data.HavePendingInvitations
import Data.Id (TeamId, UserId, idToText, randomId)
@@ -53,49 +53,49 @@ import Data.LanguageCodes (ISO639_1 (..))
import Data.Misc (HttpsUrl, mkHttpsUrl)
import Data.String.Conversions
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
-import qualified Data.Vector as V
-import qualified Data.ZAuth.Token as ZAuth
+import Data.Vector qualified as V
+import Data.ZAuth.Token qualified as ZAuth
import Imports
-import qualified Network.Wai.Utilities.Error as Wai
+import Network.Wai.Utilities.Error qualified as Wai
import Polysemy
import Polysemy.Error
-import qualified SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.Test.MockResponse as SAML
+import SAML2.WebSSO qualified as SAML
+import SAML2.WebSSO.Test.MockResponse qualified as SAML
import SAML2.WebSSO.Test.Util.TestSP (makeSampleIdPMetadata)
-import qualified SAML2.WebSSO.Test.Util.Types as SAML
-import qualified Spar.Intra.BrigApp as Intra
+import SAML2.WebSSO.Test.Util.Types qualified as SAML
+import Spar.Intra.BrigApp qualified as Intra
import Spar.Options
import Spar.Scim
import Spar.Scim.Types (normalizeLikeStored)
-import qualified Spar.Scim.User as SU
-import qualified Spar.Sem.BrigAccess as BrigAccess
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
-import qualified Spar.Sem.ScimExternalIdStore as ScimExternalIdStore
-import qualified Spar.Sem.ScimUserTimesStore as ScimUserTimesStore
+import Spar.Scim.User qualified as SU
+import Spar.Sem.BrigAccess qualified as BrigAccess
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
+import Spar.Sem.ScimExternalIdStore qualified as ScimExternalIdStore
+import Spar.Sem.ScimUserTimesStore qualified as ScimUserTimesStore
import Test.Tasty.HUnit ((@?=))
-import qualified Text.XML.DSig as SAML
+import Text.XML.DSig qualified as SAML
import Util
import Util.Invitation
-import qualified Web.Scim.Class.User as Scim.UserC
-import qualified Web.Scim.Filter as Filter
-import qualified Web.Scim.Schema.Common as Scim
-import qualified Web.Scim.Schema.Error as Scim
-import qualified Web.Scim.Schema.ListResponse as Scim
-import qualified Web.Scim.Schema.Meta as Scim
+import Web.Scim.Class.User qualified as Scim.UserC
+import Web.Scim.Filter qualified as Filter
+import Web.Scim.Schema.Common qualified as Scim
+import Web.Scim.Schema.Error qualified as Scim
+import Web.Scim.Schema.ListResponse qualified as Scim
+import Web.Scim.Schema.Meta qualified as Scim
import Web.Scim.Schema.PatchOp (Operation)
-import qualified Web.Scim.Schema.PatchOp as PatchOp
-import qualified Web.Scim.Schema.User as Scim.User
-import qualified Web.Scim.Schema.User.Email as Scim.Email
-import qualified Wire.API.Team.Export as CsvExport
-import qualified Wire.API.Team.Feature as Feature
+import Web.Scim.Schema.PatchOp qualified as PatchOp
+import Web.Scim.Schema.User qualified as Scim.User
+import Web.Scim.Schema.User.Email qualified as Scim.Email
+import Wire.API.Team.Export qualified as CsvExport
+import Wire.API.Team.Feature qualified as Feature
import Wire.API.Team.Invitation (Invitation (..))
import Wire.API.Team.Role (Role (..), defaultRole)
import Wire.API.User hiding (scimExternalId)
import Wire.API.User.IdentityProvider (IdP)
-import qualified Wire.API.User.IdentityProvider as User
+import Wire.API.User.IdentityProvider qualified as User
import Wire.API.User.RichInfo
-import qualified Wire.API.User.Scim as Spar.Types
-import qualified Wire.API.User.Search as Search
+import Wire.API.User.Scim qualified as Spar.Types
+import Wire.API.User.Search qualified as Search
-- | Tests for @\/scim\/v2\/Users@.
spec :: SpecWith TestEnv
diff --git a/services/spar/test-integration/Util/Activation.hs b/services/spar/test-integration/Util/Activation.hs
index 58e1f05125..23c6e6223b 100644
--- a/services/spar/test-integration/Util/Activation.hs
+++ b/services/spar/test-integration/Util/Activation.hs
@@ -21,7 +21,7 @@ import Bilge
import Control.Lens
import Data.Aeson.Lens as Aeson
import Data.ByteString.Conversion
-import qualified Data.Text.Ascii as Ascii
+import Data.Text.Ascii qualified as Ascii
import Imports
import Util.Types
import Wire.API.User.Activation
diff --git a/services/spar/test-integration/Util/Core.hs b/services/spar/test-integration/Util/Core.hs
index f6c8e25d73..c6452b08f4 100644
--- a/services/spar/test-integration/Util/Core.hs
+++ b/services/spar/test-integration/Util/Core.hs
@@ -150,8 +150,8 @@ import Control.Retry
import Crypto.Random.Types (MonadRandom)
import Data.Aeson as Aeson
import Data.Aeson.Lens as Aeson
-import qualified Data.ByteString.Base64.Lazy as EL
-import qualified Data.ByteString.Char8 as B8
+import Data.ByteString.Base64.Lazy qualified as EL
+import Data.ByteString.Char8 qualified as B8
import Data.ByteString.Conversion
import Data.Handle (Handle, parseHandle)
import Data.Id
@@ -161,60 +161,60 @@ import Data.Range
import Data.String.Conversions
import Data.Text (pack)
import Data.Text.Encoding (encodeUtf8)
-import qualified Data.Text.Lazy.Encoding as LT
+import Data.Text.Lazy.Encoding qualified as LT
import Data.These
import Data.UUID as UUID hiding (fromByteString, null)
import Data.UUID.V4 as UUID (nextRandom)
-import qualified Data.Yaml as Yaml
+import Data.Yaml qualified as Yaml
import GHC.TypeLits
import Imports hiding (head)
-import qualified Network.HTTP.Client as HTTP
+import Network.HTTP.Client qualified as HTTP
import Network.HTTP.Client.MultipartFormData
import Network.URI (pathSegments)
-import qualified Options.Applicative as OPA
+import Options.Applicative qualified as OPA
import Polysemy (Sem)
import SAML2.WebSSO as SAML
-import qualified SAML2.WebSSO.API.Example as SAML
+import SAML2.WebSSO.API.Example qualified as SAML
import SAML2.WebSSO.Test.Lenses (userRefL)
import SAML2.WebSSO.Test.MockResponse
import SAML2.WebSSO.Test.Util (SampleIdP (..), makeSampleIdPMetadata)
-import qualified Spar.App as IdpConfigStire
-import qualified Spar.App as Spar
+import Spar.App qualified as IdpConfigStire
+import Spar.App qualified as Spar
import Spar.CanonicalInterpreter
import Spar.Error (SparError)
-import qualified Spar.Intra.BrigApp as Intra
+import Spar.Intra.BrigApp qualified as Intra
import Spar.Options
import Spar.Run
import Spar.Sem.BrigAccess (getAccount)
-import qualified Spar.Sem.IdPConfigStore as IdPConfigStore
-import qualified Spar.Sem.SAMLUserStore as SAMLUserStore
-import qualified Spar.Sem.ScimExternalIdStore as ScimExternalIdStore
-import qualified System.Logger.Extended as Log
+import Spar.Sem.IdPConfigStore qualified as IdPConfigStore
+import Spar.Sem.SAMLUserStore qualified as SAMLUserStore
+import Spar.Sem.ScimExternalIdStore qualified as ScimExternalIdStore
+import System.Logger.Extended qualified as Log
import System.Random (randomRIO)
import Test.Hspec hiding (it, pending, pendingWith, xit)
import qualified Test.Hspec
-import qualified Text.XML as XML
-import qualified Text.XML.Cursor as XML
+import Text.XML qualified as XML
+import Text.XML.Cursor qualified as XML
import Text.XML.DSig (SignPrivCreds)
-import qualified Text.XML.DSig as SAML
+import Text.XML.DSig qualified as SAML
import URI.ByteString as URI
import Util.Options
import Util.Types
-import qualified Web.Cookie as Web
+import Web.Cookie qualified as Web
import Web.HttpApiData
import Wire.API.Routes.Version
import Wire.API.Team (Icon (..))
-import qualified Wire.API.Team as Galley
+import Wire.API.Team qualified as Galley
import Wire.API.Team.Feature
-import qualified Wire.API.Team.Invitation as TeamInvitation
+import Wire.API.Team.Invitation qualified as TeamInvitation
import Wire.API.Team.Member (NewTeamMember, TeamMemberList, rolePermissions)
-import qualified Wire.API.Team.Member as Member
-import qualified Wire.API.Team.Member as Team
+import Wire.API.Team.Member qualified as Member
+import Wire.API.Team.Member qualified as Team
import Wire.API.Team.Permission
import Wire.API.Team.Role
-import qualified Wire.API.Team.Role as Role
+import Wire.API.Team.Role qualified as Role
import Wire.API.User
-import qualified Wire.API.User as User
+import Wire.API.User qualified as User
import Wire.API.User.Auth hiding (Cookie)
import Wire.API.User.IdentityProvider
import Wire.API.User.Scim
diff --git a/services/spar/test-integration/Util/Email.hs b/services/spar/test-integration/Util/Email.hs
index 0809638ef2..1b107535f8 100644
--- a/services/spar/test-integration/Util/Email.hs
+++ b/services/spar/test-integration/Util/Email.hs
@@ -28,13 +28,13 @@ import Control.Lens (view)
import Control.Monad.Catch (MonadCatch)
import Data.ByteString.Conversion
import Data.Id
-import qualified Data.ZAuth.Token as ZAuth
+import Data.ZAuth.Token qualified as ZAuth
import Imports
import Test.Tasty.HUnit
import Util.Activation
import Util.Core
import Util.Types
-import qualified Wire.API.Team.Feature as Feature
+import Wire.API.Team.Feature qualified as Feature
import Wire.API.User
import Wire.API.User.Activation
diff --git a/services/spar/test-integration/Util/Invitation.hs b/services/spar/test-integration/Util/Invitation.hs
index 157a0f591f..2d871d6c4f 100644
--- a/services/spar/test-integration/Util/Invitation.hs
+++ b/services/spar/test-integration/Util/Invitation.hs
@@ -27,7 +27,7 @@ where
import Bilge
import Bilge.Assert ((!!!), ( UserId -> IO [Maybe UTCTime]
diff --git a/tools/rabbitmq-consumer/app/Main.hs b/tools/rabbitmq-consumer/app/Main.hs
index 0379be52e3..31fd743a8b 100644
--- a/tools/rabbitmq-consumer/app/Main.hs
+++ b/tools/rabbitmq-consumer/app/Main.hs
@@ -17,7 +17,7 @@
module Main where
-import qualified RabbitMQConsumer.Lib as Lib
+import RabbitMQConsumer.Lib qualified as Lib
main :: IO ()
main = Lib.main
diff --git a/tools/rex/Main.hs b/tools/rex/Main.hs
index 34401a8037..d83ce9014e 100644
--- a/tools/rex/Main.hs
+++ b/tools/rex/Main.hs
@@ -29,22 +29,22 @@ module Main (main) where
import Control.Concurrent.Async
import Control.Monad.Catch
import Control.Monad.Trans
-import qualified Data.Attoparsec.ByteString.Char8 as Parser
+import Data.Attoparsec.ByteString.Char8 qualified as Parser
import Data.Bifunctor
import Data.Bitraversable
import Data.ByteString (ByteString)
-import qualified Data.ByteString.Char8 as ByteString
+import Data.ByteString.Char8 qualified as ByteString
import Data.Foldable
import Data.Functor (($>))
import Data.HashMap.Strict (HashMap)
-import qualified Data.HashMap.Strict as HashMap
+import Data.HashMap.Strict qualified as HashMap
import Data.IP
import Data.Maybe
import Data.Text (Text)
-import qualified Data.Text as Text
+import Data.Text qualified as Text
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
-import qualified Data.Text.IO as Text
-import qualified Data.Text.Read as Text
+import Data.Text.IO qualified as Text
+import Data.Text.Read qualified as Text
import Data.Traversable
import Data.Word
import Network.DNS hiding (header)
@@ -55,14 +55,14 @@ import Network.Wai
import Network.Wai.Handler.Warp
import Options.Applicative
import System.Clock
-import qualified System.Logger as Log
+import System.Logger qualified as Log
import System.Logger.Message (msg, val)
import System.Metrics.Prometheus.Concurrent.RegistryT -- this library sucks
import System.Metrics.Prometheus.Encode.Text
-import qualified System.Metrics.Prometheus.Metric.Counter as Counter
+import System.Metrics.Prometheus.Metric.Counter qualified as Counter
import System.Metrics.Prometheus.Metric.Gauge (Gauge)
-import qualified System.Metrics.Prometheus.Metric.Gauge as Gauge
-import qualified System.Metrics.Prometheus.Metric.Histogram as Histo
+import System.Metrics.Prometheus.Metric.Gauge qualified as Gauge
+import System.Metrics.Prometheus.Metric.Histogram qualified as Histo
import System.Metrics.Prometheus.MetricId
import System.Metrics.Prometheus.Registry (RegistrySample)
import System.Timeout (timeout)
diff --git a/tools/stern/test/unit/Main.hs b/tools/stern/test/unit/Main.hs
index ddc1815587..c776feb5ac 100644
--- a/tools/stern/test/unit/Main.hs
+++ b/tools/stern/test/unit/Main.hs
@@ -17,7 +17,7 @@
module Main where
-import qualified Stern.Intra as Intra
+import Stern.Intra qualified as Intra
import Test.Tasty
import Test.Tasty.HUnit
import Wire.API.Routes.Version (supportedVersions)
From 65db7039672b63a08d67e2ee5c57ef9246fea0cb Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 17 Dec 2025 06:53:08 +0000
Subject: [PATCH 3/3] Update cabal files to use GHC2021 as default-language
Replace Haskell2010 with GHC2021 in all cabal files to ensure ImportQualifiedPost
extension is available. This extension is part of GHC2021 and is required for the
postpositive qualified import syntax.
Updated 11 cabal files:
- libs/hscim/hscim.cabal
- libs/http2-manager/http2-manager.cabal
- libs/polysemy-wire-zoo/polysemy-wire-zoo.cabal
- libs/wire-api/wire-api.cabal
- services/cargohold/cargohold.cabal
- services/spar/spar.cabal
- tools/db/assets/assets.cabal
- tools/db/mls-users/mls-users.cabal
- tools/db/phone-users/phone-users.cabal
- tools/db/team-info/team-info.cabal
- tools/rex/rex.cabal
Co-authored-by: supersven <6235937+supersven@users.noreply.github.com>
---
libs/hscim/hscim.cabal | 6 +++---
libs/http2-manager/http2-manager.cabal | 2 +-
libs/polysemy-wire-zoo/polysemy-wire-zoo.cabal | 4 ++--
libs/wire-api/wire-api.cabal | 2 +-
services/cargohold/cargohold.cabal | 8 ++++----
services/spar/spar.cabal | 12 ++++++------
tools/db/assets/assets.cabal | 2 +-
tools/db/mls-users/mls-users.cabal | 4 ++--
tools/db/phone-users/phone-users.cabal | 2 +-
tools/db/team-info/team-info.cabal | 2 +-
tools/rex/rex.cabal | 2 +-
11 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/libs/hscim/hscim.cabal b/libs/hscim/hscim.cabal
index e29f6db05f..d926450ddb 100644
--- a/libs/hscim/hscim.cabal
+++ b/libs/hscim/hscim.cabal
@@ -123,7 +123,7 @@ library
, wai-extra
, wai-utilities
- default-language: Haskell2010
+ default-language: GHC2021
executable hscim-server
main-is: Main.hs
@@ -161,7 +161,7 @@ executable hscim-server
, time
, warp
- default-language: Haskell2010
+ default-language: GHC2021
test-suite spec
type: exitcode-stdio-1.0
@@ -230,4 +230,4 @@ test-suite spec
, wai
, wai-extra
- default-language: Haskell2010
+ default-language: GHC2021
diff --git a/libs/http2-manager/http2-manager.cabal b/libs/http2-manager/http2-manager.cabal
index 3aed0c465b..9b9dbd0c33 100644
--- a/libs/http2-manager/http2-manager.cabal
+++ b/libs/http2-manager/http2-manager.cabal
@@ -46,7 +46,7 @@ library
, text
, time-manager
- default-language: Haskell2010
+ default-language: GHC2021
flag test-trailing-dot
description: "Whether or not include the trailing dot test"
diff --git a/libs/polysemy-wire-zoo/polysemy-wire-zoo.cabal b/libs/polysemy-wire-zoo/polysemy-wire-zoo.cabal
index 87dc102d65..8425ba3661 100644
--- a/libs/polysemy-wire-zoo/polysemy-wire-zoo.cabal
+++ b/libs/polysemy-wire-zoo/polysemy-wire-zoo.cabal
@@ -106,7 +106,7 @@ library
, unliftio
, uuid
- default-language: Haskell2010
+ default-language: GHC2021
test-suite spec
type: exitcode-stdio-1.0
@@ -175,4 +175,4 @@ test-suite spec
, polysemy-wire-zoo
, unliftio
- default-language: Haskell2010
+ default-language: GHC2021
diff --git a/libs/wire-api/wire-api.cabal b/libs/wire-api/wire-api.cabal
index 80c4e21136..d0132fa4d1 100644
--- a/libs/wire-api/wire-api.cabal
+++ b/libs/wire-api/wire-api.cabal
@@ -11,7 +11,7 @@ license-file: LICENSE
build-type: Simple
common common-all
- default-language: Haskell2010
+ default-language: GHC2021
ghc-options:
-O2 -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
-Wpartial-fields -fwarn-tabs -optP-Wno-nonportable-include-path
diff --git a/services/cargohold/cargohold.cabal b/services/cargohold/cargohold.cabal
index e84c9fad29..fee39d5535 100644
--- a/services/cargohold/cargohold.cabal
+++ b/services/cargohold/cargohold.cabal
@@ -141,7 +141,7 @@ library
, wire-api-federation
, yaml >=0.8
- default-language: Haskell2010
+ default-language: GHC2021
executable cargohold
main-is: exec/Main.hs
@@ -204,7 +204,7 @@ executable cargohold
if flag(static)
ld-options: -static
- default-language: Haskell2010
+ default-language: GHC2021
executable cargohold-integration
main-is: Main.hs
@@ -298,7 +298,7 @@ executable cargohold-integration
, wire-api-federation
, yaml >=0.8
- default-language: Haskell2010
+ default-language: GHC2021
test-suite cargohold-tests
type: exitcode-stdio-1.0
@@ -374,4 +374,4 @@ test-suite cargohold-tests
, uri-bytestring >=0.2
, wire-api
- default-language: Haskell2010
+ default-language: GHC2021
diff --git a/services/spar/spar.cabal b/services/spar/spar.cabal
index c9637fca4f..8e276b0550 100644
--- a/services/spar/spar.cabal
+++ b/services/spar/spar.cabal
@@ -204,7 +204,7 @@ library
, wire-subsystems
, yaml
- default-language: Haskell2010
+ default-language: GHC2021
executable spar
main-is: Main.hs
@@ -264,7 +264,7 @@ executable spar
, imports
, spar
- default-language: Haskell2010
+ default-language: GHC2021
executable spar-integration
main-is: Main.hs
@@ -403,7 +403,7 @@ executable spar-integration
, yaml
, zauth
- default-language: Haskell2010
+ default-language: GHC2021
executable spar-migrate-data
main-is: Main.hs
@@ -482,7 +482,7 @@ executable spar-migrate-data
, uri-bytestring
, utf8-string
- default-language: Haskell2010
+ default-language: GHC2021
executable spar-schema
main-is: Main.hs
@@ -540,7 +540,7 @@ executable spar-schema
imports
, spar
- default-language: Haskell2010
+ default-language: GHC2021
test-suite spec
type: exitcode-stdio-1.0
@@ -648,4 +648,4 @@ test-suite spec
, uuid
, wire-api
- default-language: Haskell2010
+ default-language: GHC2021
diff --git a/tools/db/assets/assets.cabal b/tools/db/assets/assets.cabal
index 1d054cecf8..0ade362fa6 100644
--- a/tools/db/assets/assets.cabal
+++ b/tools/db/assets/assets.cabal
@@ -84,7 +84,7 @@ executable assets
, base
hs-source-dirs: app
- default-language: Haskell2010
+ default-language: GHC2021
ghc-options:
-O2 -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
-Wpartial-fields -fwarn-tabs -optP-Wno-nonportable-include-path
diff --git a/tools/db/mls-users/mls-users.cabal b/tools/db/mls-users/mls-users.cabal
index 1ee8696178..c3c6f56bae 100644
--- a/tools/db/mls-users/mls-users.cabal
+++ b/tools/db/mls-users/mls-users.cabal
@@ -11,7 +11,7 @@ build-type: Simple
library
hs-source-dirs: src
- default-language: Haskell2010
+ default-language: GHC2021
exposed-modules:
MlsUsers.Lib
MlsUsers.Types
@@ -91,7 +91,7 @@ executable mls-users
, mls-users
hs-source-dirs: app
- default-language: Haskell2010
+ default-language: GHC2021
ghc-options:
-O2 -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
-Wpartial-fields -fwarn-tabs -optP-Wno-nonportable-include-path
diff --git a/tools/db/phone-users/phone-users.cabal b/tools/db/phone-users/phone-users.cabal
index ab9c01f828..c5b823d5a4 100644
--- a/tools/db/phone-users/phone-users.cabal
+++ b/tools/db/phone-users/phone-users.cabal
@@ -88,7 +88,7 @@ executable phone-users
, phone-users
hs-source-dirs: app
- default-language: Haskell2010
+ default-language: GHC2021
ghc-options:
-O2 -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
-Wpartial-fields -fwarn-tabs -optP-Wno-nonportable-include-path
diff --git a/tools/db/team-info/team-info.cabal b/tools/db/team-info/team-info.cabal
index c96cb3485c..e853e87552 100644
--- a/tools/db/team-info/team-info.cabal
+++ b/tools/db/team-info/team-info.cabal
@@ -84,7 +84,7 @@ executable team-info
, team-info
hs-source-dirs: app
- default-language: Haskell2010
+ default-language: GHC2021
ghc-options:
-O2 -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
-Wpartial-fields -fwarn-tabs -optP-Wno-nonportable-include-path
diff --git a/tools/rex/rex.cabal b/tools/rex/rex.cabal
index d317815b3f..6a310946b5 100644
--- a/tools/rex/rex.cabal
+++ b/tools/rex/rex.cabal
@@ -43,4 +43,4 @@ executable rex
if flag(static)
ld-options: -static
- default-language: Haskell2010
+ default-language: GHC2021