有没有办法在 Haskell 中扩展库模块?
例如,我想将firstToLower
函数添加到Data.String
. 当我创建自己的Data.String
它时,它会掩盖图书馆一:
module Data.String where
import Prelude
import Data.Char (toLower)
firstToLower :: String -> String
firstToLower (c:cs) = toLower c : cs
firstToLower "" = ""
然后我得到错误尝试import Data.String (lines)
:
Module `Data.String' does not export `lines'
如果这样的事情是可能的,那就太好了。如果不是,那么这种情况的最佳做法是什么?这些扩展应该放在哪里?
谢谢你。
更新
我不打算将我的扩展作为一个库发布,只是想以一种有意义的方式在我的项目中组织它。