是否可以"隐藏"语言扩展?

J F*_*sch 13 haskell

我编写了一个模块,为了运行导入模块的主代码需要具有语言扩展名,{-# LANGUAGE OverloadedStrings #-}或者当编译程序时需要给出选项.

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

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

Don*_*art 13

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


scl*_*clv 10

请注意,这绝不-XOverloadedStrings是必需的.从松散的角度来说,所有扩展的作用都转化为.没有扩展,用户总是可以自己做同样的事情."I'm a string"fromString "I'm a string"