我编写了一个模块,为了运行导入模块的主代码,需要使用语言扩展名{-# LANGUAGE OverloadedStrings #-}
,或者当编译时需要提供选项。
如果我在模块中包含{-# LANGUAGE OverloadedStrings #-}
,则无法解决问题,用户仍需要在代码中或编译时执行相同操作。
有什么方法可以在实际模块中做“某事”,以便从最终用户那里解决这个问题,并说“隐藏”所需的语言扩展名?
答案 0 :(得分:13)
不,您的库公开了需要使用语言扩展的功能。这是您应该在文档和示例中说明的内容。没有办法在用户代码上打开它。
答案 1 :(得分:10)
请注意,-XOverloadedStrings
从不是必需的。从宽松的角度讲,所有扩展程序都将"I'm a string"
翻译为fromString "I'm a string"
。没有扩展,用户总是可以自己做同样的事情。