haskell 模块X出现在多个包中

pod7payv  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(68)

我在Haskell中写了一个简短的Turtle脚本,用Stack运行它:

#!/usr/bin/env stack
-- stack --resolver lts-19.6 script
                                    
{-# LANGUAGE OverloadedStrings #-}  
                                    
import Turtle                       
import Data.Text

字符串
但当我添加了“数据.文本”导入我得到这个错误:

Module Data.Text appears in multiple packages: 
relude text


不是打错了,它真的写的是“前奏曲”。
我该怎么解决呢?

gywdnpxw

gywdnpxw1#

您可以通过显式指定要使用的包来解决此问题:用途:

#!/usr/bin/env stack
-- stack --resolver lts-19.6 script --package text --package turtle
                                    
{-# LANGUAGE OverloadedStrings #-}  
                                    
import Turtle                       
import Data.Text

字符串
我认为默认情况下,它会暴露快照中的所有包,因此确实可能有多个包提供相同的模块,堆栈无法自行解决。
另一种解决方案是使用PackageImports

#!/usr/bin/env stack
-- stack --resolver lts-19.6 script
                                    
{-# LANGUAGE OverloadedStrings, PackageImports #-}  
                                    
import Turtle                       
import "text" Data.Text


请查看最佳实践的文档:
https://docs.haskellstack.org/en/stable/scripts/

相关问题