扩展Haskell模块

时间:2013-10-08 09:34:07

标签: haskell module libraries

有没有办法在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'

如果可能的话,这将是非常好的。如果没有,这种情况的最佳做法是什么?应该放置哪些扩展名?

谢谢。

更新

我不打算将我的扩展版本作为库发布,只是想以有意义的方式在我的项目中进行组织。

1 个答案:

答案 0 :(得分:10)

不,这是不可能的。人们have used in the past的一个解决方案是将您的添加内容添加到名为Data.String.Extra的模块中,并在Hackage上发布该模块(如果您认为您的添加对其他人有用)。

或者,您可以propose your extension for inclusion in the standard library