Проблема с загрузкой модуля Data.Number.CReal в файл cabal - PullRequest
2 голосов
/ 21 сентября 2019

Я установил простой проект со стеком, мой stack.yaml выглядит так:

resolver: lts-14.6

packages:
- .

dependencies:
  - base (>=3 && <5)
  - numbers

, и у меня есть простой код, который вызывает только функцию:

module Main where

import Lib
import Data.Number.CReal

main :: IO ()
main = someFunc

иошибка всегда одна и та же:

numbers-play-0.1.0.0: unregistering (local file changes: numbers-play.cabal)
numbers-play> configure (lib + exe)
Configuring numbers-play-0.1.0.0...
numbers-play> build (lib + exe)
Preprocessing library for numbers-play-0.1.0.0..
Building library for numbers-play-0.1.0.0..
[1 of 2] Compiling Lib
[2 of 2] Compiling Paths_numbers_play
Preprocessing executable 'numbers-play-exe' for numbers-play-0.1.0.0..
Building executable 'numbers-play-exe' for numbers-play-0.1.0.0..
[1 of 2] Compiling Main [Data.Number.CReal changed]

/home/damian/dev/haskell/numbers-play/app/Main.hs:4:1: error:
    Could not load module ‘Data.Number.CReal’
    It is a member of the hidden package ‘numbers-3000.2.0.2’.
    Perhaps you need to add ‘numbers’ to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.
  |
4 | import Data.Number.CReal
  | ^^^^^^^^^^^^^^^^^^^^^^^^

Мой междусобойчик файл:

cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.31.2.
--
-- see: https://github.com/sol/hpack
--
-- hash: fb0ed9e8eb8062639f1d6a02a65d857d15b3265158925242287d4a8a885f8381

name:           numbers-play
version:        0.1.0.0
description:    Please see the README on GitHub at <https://github.com/githubuser/numbers-play#readme>
homepage:       https://github.com/githubuser/numbers-play#readme
bug-reports:    https://github.com/githubuser/numbers-play/issues
author:         Author name here
maintainer:     example@example.com
copyright:      2019 Author name here
license:        BSD3
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    ChangeLog.md

source-repository head
  type: git
  location: https://github.com/githubuser/numbers-play

library
  exposed-modules:
      Lib
  other-modules:
      Paths_numbers_play
  hs-source-dirs:
      src
  build-depends:
      base >=4.7 && <5
  default-language: Haskell2010

executable numbers-play-exe
  main-is: Main.hs
  other-modules:
      Paths_numbers_play
  hs-source-dirs:
      app
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , numbers-play
  default-language: Haskell2010

test-suite numbers-play-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Paths_numbers_play
  hs-source-dirs:
      test
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , numbers-play
  default-language: Haskell2010

Как правильно его импортировать?

1 Ответ

4 голосов
/ 21 сентября 2019

Поле dependencies, которое задает зависимость numbers, должно быть в вашем package.yaml файле (который используется в стеке для генерации кабального файла), а не в stack.yaml (которыйпредназначен для конфигурации, специфичной для стека, например, для выбора преобразователя).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...