Search code examples
haskellpackageghc

GHC can not find installed module


My haskell installation can not find bytestring module installed by operating system

$ ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :m +Data.ByteString.Lazy

<no location info>:
Could not find module `Data.ByteString.Lazy'
It is not a module in the current program, or in any known package.

But I have installed this module using yum:

$ rpm -ql ghc-bytestring
/usr/lib64/ghc-7.6.3/bytestring-0.10.0.2
/usr/lib64/ghc-7.6.3/bytestring-0.10.0.2/libHSbytestring-0.10.0.2-ghc7.6.3.so
/usr/share/doc/ghc-bytestring
/usr/share/doc/ghc-bytestring/LICENSE

What is wrong?


Solution

  • Situation here is similiar to C++ you have libraries used during dynamic linking stage and header used for compilation. In Fedora packages like ghc-bytestring are only libraries without headers. To install headers I had to install ghc-bytestring-devel package.

    An example on Fedora 24:

    server.hs:7:8:
        Could not find module ‘Data.Text’
        Perhaps you meant Data.Set (from containers-0.5.5.1)
        Locations searched:
          Data/Text.hs
          Data/Text.lhs
    

    So change to user root, then:

    What packages are there?

    # dnf search ghc|grep text
    
    ghc-text.x86_64 : An efficient packed Unicode text type
    ghc-boxes.x86_64 : 2D text pretty-printing library
    ghc-pango.x86_64 : Binding to the Pango text rendering engine
    ghc-css-text.x86_64 : CSS parser and renderer
    ghc-hgettext.x86_64 : Haskell binding to libintl
    ghc-attoparsec.x86_64 : Fast combinator parsing for bytestrings and text
    ghc-text-devel.x86_64 : Haskell text library development files
    ghc-blaze-textual.x86_64 : Fast rendering of common datatypes
    ghc-css-text-devel.x86_64 : Haskell css-text library development files
    ghc-hgettext-devel.x86_64 : Haskell hgettext library development files
    ghc-blaze-textual-devel.x86_64 : Haskell blaze-textual library development files
    

    So what's installed?

    # rpm --query ghc-text
    ghc-text-1.1.1.3-3.fc24.x86_64
    
    # rpm --query ghc-text-devel
    package ghc-text-devel is not installed
    

    So let's install the devel package.

    # dnf install ghc-text-devel
    Installed:
      ghc-text-devel.x86_64 1.1.1.3-3.fc24
    

    ...and compilation succeeds after that.