在 cabal 文件中加载模块 Data.Number.CReal 时出现问题

Problem loading module Data.Number.CReal in cabal file

我安装了一个带有堆栈的简单项目,我的 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 文件:

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

如何正确导入?

指定 numbers 依赖项的 dependencies 字段应该在您的 中(Stack 用于生成 cabal 文件),而不是 stack.yaml(用于特定于堆栈的配置,例如选择解析器)。