2012-06-14 155 views
13

我已經編寫了一個模塊,並且爲了運行模塊導入的主代碼需要語言擴展{-# LANGUAGE OverloadedStrings #-}或當編譯過程中需要給出選項。是否可以「隱藏」語言擴展?

如果我在模塊中包含{-# LANGUAGE OverloadedStrings #-}這是無法治癒的,並且用戶仍然需要在她的代碼或編譯時執行相同的操作。

有沒有什麼辦法可以在實際模塊中做「某些事情」,以便從最終用戶那裏解決這個問題,從而說出「隱藏」所需的語言擴展?

回答

13

不,您的圖書館公開了需要使用語言擴展的功能。這是你應該在你的文檔和例子中說明的東西。用戶代碼無法打開它。

10

請注意,-XOverloadedStrings從來沒有需要。鬆散地說,所有這些擴展都是將"I'm a string"翻譯爲fromString "I'm a string"。沒有擴展名,用戶可以自己做同樣的事情。