是否可以“隐藏”语言扩展?

时间:2012-06-14 14:49:20

标签: haskell

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

如果我在模块中包含{-# LANGUAGE OverloadedStrings #-},则无法解决问题,用户仍需要在代码中或编译时执行相同操作。

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

2 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:10)

请注意,-XOverloadedStrings 从不是必需的。从宽松的角度讲,所有扩展程序都将"I'm a string"翻译为fromString "I'm a string"。没有扩展,用户总是可以自己做同样的事情。