Home > Mobile >  Haskell -- suppress import errors
Haskell -- suppress import errors

Time:10-06

I have a bunch of Haskell files I need to compile with GHC, but some import libraries that don't exist. Is there a way to suppress the compiler error: Could not find module, and only make it throw during runtime? Something like -fdefer-type-errors does, but for imports.

Editing the files is not an option at the moment, and most imports are not even used by the program, so would never throw if it compiled.

CodePudding user response:

You can use cabal's mixins to expose other, existing, modules with the names of the modules you desire to exist. For example you might have a file:

module MyLib (someFunc) where

import Module1
import Module2

someFunc :: IO ()
someFunc = putStrLn "someFunc"

So Module1 and Module2 do not actually exist. But you can point those modules to anything, such as Data.Map and Data.Set using the cabal file:

library
    exposed-modules:  MyLib

    -- Modules included in this library but not exported.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    base ^>=4.14.0.0, containers
    hs-source-dirs:   src
    default-language: Haskell2010
    mixins:
        containers (Data.Map as Module1, Data.Set as Module2)

CodePudding user response:

There is no option in GHC that allows compilation when an imported module can not be found.

  • Related