Could not find module `Data.Map' — It is a member of the hidden package

前端 未结 2 2080
粉色の甜心
粉色の甜心 2020-12-15 18:15

First, I created a new workspace:

stack new xxxx
stack init
stack build

then

cd xxx\\app
stack ghci
import Data.Map
         


        
相关标签:
2条回答
  • 2020-12-15 19:01

    These general steps were helpful for me to resolve similar issues:

    1. Use Hoogle or Stackage to find the package where the module resides

      Note that Hoogle and Stackage are case-sensitive. Looking up Data.Map in Hoogle yields a list similar to the one below. Stackage has a slightly different style, but the basics are the same (mostly because it also uses Hoogle for lookup).

    The lines in green under the result headings show the name(s) of the containing

    (1) package(s) (in small caps) and

    (2) module(s) (capitalized).

    1. Open project-name.cabal in project root and add required package under build-depends:

      library
        hs-source-dirs:
            src
      
        build-depends:
            base >= 4.7 && < 5
          , containers
      
        exposed-modules:
            Lib
      
    2. Issue stack build to download and build dependencies

      (or stack ghci if you plan to use it in the REPL)

    0 讨论(0)
  • 2020-12-15 19:05

    The reason you can import Data.Char and Data.List is that they are part of the package base, which is included with GHC and is always loaded with GHCi. By contrast, Data.Map is in the external library containers. One way to load it with stack ghci is to add a cabal file with a build-depends on containers. This will install it in the stack environment for xxxx, so it will then be accessible.

    0 讨论(0)
提交回复
热议问题