我已經編寫了一個模塊,並且爲了運行模塊導入的主代碼需要語言擴展{-# LANGUAGE OverloadedStrings #-}
或當編譯過程中需要給出選項。是否可以「隱藏」語言擴展?
如果我在模塊中包含{-# LANGUAGE OverloadedStrings #-}
這是無法治癒的,並且用戶仍然需要在她的代碼或編譯時執行相同的操作。
有沒有什麼辦法可以在實際模塊中做「某些事情」,以便從最終用戶那裏解決這個問題,從而說出「隱藏」所需的語言擴展?
我已經編寫了一個模塊,並且爲了運行模塊導入的主代碼需要語言擴展{-# LANGUAGE OverloadedStrings #-}
或當編譯過程中需要給出選項。是否可以「隱藏」語言擴展?
如果我在模塊中包含{-# LANGUAGE OverloadedStrings #-}
這是無法治癒的,並且用戶仍然需要在她的代碼或編譯時執行相同的操作。
有沒有什麼辦法可以在實際模塊中做「某些事情」,以便從最終用戶那裏解決這個問題,從而說出「隱藏」所需的語言擴展?
不,您的圖書館公開了需要使用語言擴展的功能。這是你應該在你的文檔和例子中說明的東西。用戶代碼無法打開它。
請注意,-XOverloadedStrings
是從來沒有需要。鬆散地說,所有這些擴展都是將"I'm a string"
翻譯爲fromString "I'm a string"
。沒有擴展名,用戶可以自己做同樣的事情。