Для сценариев и игры в ghci я хочу импортировать Data.Matrix
из пакета matrix
.
База уже содержит Data.Matrix
, но из другой упаковки: matrices
.
Мне удалось обойти это успешно с PackageImports:
Для ghci я делаю:
$ stack exec --resolver lts-12.5 --package "matrix" -- ghci
Prelude> :set -XPackageImports
Prelude> import "matrix" Data.Matrix
и для скриптов:
#!/usr/bin/env stack
-- stack --package matrix
{-# LANGUAGE PackageImports #-}
import "matrix" Data.Matrix
main = putStrLn $ Data.Matrix.prettyMatrix
$ Data.Matrix.fromList 1 1 [1]
выполнено с stack ghc script.hs; ./script.hs
Но документация гласит: «Вам, вероятно, не нужно использовать это ... См. Также« Истончение и переименование модулей »для альтернативного способа ...»
Там , предлагается использовать, например. -package "base (Data.Bool as Bool)"
поэтому я хотел попробовать это и решил, что для моего случая это будет что-то вроде
-package "base (Data.Matrix as Mx)"
, чтобы переименовать существующее, которое я хочу игнорировать, или
-package "matrix (Data.Matrix as Mx)"
, чтобы добавить пользовательское имя для модуля, который я хочу.
Но я даже не могу заставить пример работать:
stack exec -package "base (Data.Bool as Bool)" -- ghci
Invalid option `-package'
Did you mean this?
--package
...
stack exec --package "base (Data.Bool as Bool)" -- ghci
The following errors occurred while parsing the build targets:
- Directory not found: (Data.Bool
- Directory not found: Bool)
stack exec -package base (Data.Bool as Bool) -- ghci
bash: syntax error near unexpected token `('
Для сценариев
#!/usr/bin/env stack
(I've tried each of those separately)
-- stack -package "base (Data.Bool as Bool)"
-- stack -package base (Data.Bool as Bool)
-- stack --package "base (Data.Bool as Bool)"
-- stack --package base (Data.Bool as Bool)
import Bool
main = putStrLn $ show True
не компилируется (stack ghc script2.hs
)
[1 of 1] Compiling Main ( script2.hs, script2.o )
script2.hs:4:1: error:
Could not find module ‘Bool’
Use -v to see a list of the files searched for.
|
4 | import Bool
| ^^^^^^^^^^^