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/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/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/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/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/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/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-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/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/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/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/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/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/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/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/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
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)