You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell脚本中Data.Text模块多包冲突的解决方法

解决Haskell脚本中Data.Text模块重复的编译错误

你遇到的错误是因为当前LTS-19.6环境里,relude包(通常作为替代标准Prelude的库)和官方text包都提供了Data.Text模块,编译器无法自动确定使用哪一个。以下是两种可行的解决方式:

方法一:显式指定模块所属包

这是最直接且安全的方式,在导入语句中明确指定要使用text包的Data.Text模块:

#!/usr/bin/env stack
-- stack --resolver lts-19.6 script
                                    
{-# LANGUAGE OverloadedStrings #-}  
                                    
import Turtle                       
-- 带限定名导入(推荐,避免潜在的命名冲突)
import qualified "text" Data.Text as T

如果不需要限定名,也可以直接写:

import "text" Data.Text

方法二:排除relude包(可选)

如果你的脚本完全不需要relude包,可以在stack脚本头部添加排除指令,强制不引入该包:

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

注意:这种方式可能引发依赖冲突,如果其他依赖需要relude则会报错,因此优先推荐方法一。

内容的提问来源于stack exchange,提问作者Jencel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:54:55