Skip to content

-Winferred-safe-imports exits with an error.

Looks like similar issue to !3295 (closed) is happening in GHC-9.0.2 .. 9.4.4

If I try to build with parsec-3.1.15.1 against old mtl-2.2.1:

% cabal build -w ghc-9.4.3 --constraint=mtl==2.2.1
Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.6.2.0 supports
'ghc' version < 9.4): /opt/ghc/bin/ghc-9.4.3 is version 9.4.3
Resolving dependencies...
Build profile: -w ghc-9.4.3 -O1
In order, the following will be built (use -v for more details):
 - mtl-2.2.1 (lib:mtl) (requires build)
 - parsec-3.1.15.1 (lib) (first run)
Starting     mtl-2.2.1 (all, legacy fallback)
Building     mtl-2.2.1 (all, legacy fallback)
Installing   mtl-2.2.1 (all, legacy fallback)
Completed    mtl-2.2.1 (all, legacy fallback)
Configuring library for parsec-3.1.15.1..
Preprocessing library for parsec-3.1.15.1..
Building library for parsec-3.1.15.1..
[ 1 of 25] Compiling Text.Parsec.Pos  ( src/Text/Parsec/Pos.hs, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/Parsec/Pos.o, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/Parsec/Pos.dyn_o )
[ 2 of 25] Compiling Text.Parsec.Error ( src/Text/Parsec/Error.hs, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/Parsec/Error.o, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/Parsec/Error.dyn_o )
[ 3 of 25] Compiling Text.Parsec.Prim ( src/Text/Parsec/Prim.hs, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/Parsec/Prim.o, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/Parsec/Prim.dyn_o )

src/Text/Parsec/Prim.hs:103:1: warning: [-Winferred-safe-imports]
    Importing Safe-Inferred module Control.Monad.Trans from explicitly Safe module
    |
103 | import Control.Monad.Trans (MonadTrans (lift), MonadIO (liftIO))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Text/Parsec/Prim.hs:104:1: warning: [-Winferred-safe-imports]
    Importing Safe-Inferred module Control.Monad.Identity from explicitly Safe module
    |
104 | import Control.Monad.Identity (Identity, runIdentity)
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Text/Parsec/Prim.hs:107:1: warning: [-Winferred-safe-imports]
    Importing Safe-Inferred module Control.Monad.Reader.Class from explicitly Safe module
    |
107 | import Control.Monad.Reader.Class (MonadReader (..))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Text/Parsec/Prim.hs:108:1: warning: [-Winferred-safe-imports]
    Importing Safe-Inferred module Control.Monad.State.Class from explicitly Safe module
    |
108 | import Control.Monad.State.Class (MonadState (..))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Text/Parsec/Prim.hs:109:1: warning: [-Winferred-safe-imports]
    Importing Safe-Inferred module Control.Monad.Cont.Class from explicitly Safe module
    |
109 | import Control.Monad.Cont.Class (MonadCont (..))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Text/Parsec/Prim.hs:110:1: warning: [-Winferred-safe-imports]
    Importing Safe-Inferred module Control.Monad.Error.Class from explicitly Safe module
    |
110 | import Control.Monad.Error.Class (MonadError (..))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[18 of 25] Compiling Text.ParserCombinators.Parsec.Error ( src/Text/ParserCombinators/Parsec/Error.hs, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/ParserCombinators/Parsec/Error.o, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/ParserCombinators/Parsec/Error.dyn_o )
[21 of 25] Compiling Text.ParserCombinators.Parsec.Pos ( src/Text/ParserCombinators/Parsec/Pos.hs, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/ParserCombinators/Parsec/Pos.o, /code/other-haskell/parsec/dist-newstyle/build/x86_64-linux/ghc-9.4.3/parsec-3.1.15.1/build/Text/ParserCombinators/Parsec/Pos.dyn_o )

and it fails.

If I comment out the -Winferred-safe-imports in the parsec.cabal, the build succeeds.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information