13

我已经编写了一个模块,并且为了运行导入模块的主要代码,需要具有语言扩展名{-# LANGUAGE OverloadedStrings #-},或者在编译时需要提供选项。

如果我{-# LANGUAGE OverloadedStrings #-}在模块中包含 ,这是无法治愈的,用户仍然需要在她的代码中或编译时执行相同的操作。

有什么办法可以在实际模块中做“某事”,以便从最终用户那里解决这个问题,从而说“隐藏”所需的语言扩展?

4

2 回答 2

13

不,您的库公开了需要使用语言扩展的功能。这是您应该在文档和示例中说明的内容。没有办法在用户代码上打开它。

于 2012-06-14T14:52:02.597 回答
10

请注意,这-XOverloadedStrings不是必需的。粗略地说,该扩展所做的只是转换"I'm a string"fromString "I'm a string". 如果没有扩展,用户总是可以自己做同样的事情。

于 2012-06-14T20:41:30.963 回答