gpt4 book ai didi

Haskell:隐藏模块导出中的特定功能?

转载 作者:行者123 更新时间:2023-12-03 08:30:02 24 4
gpt4 key购买 nike

我有一个 Haskell 模块,我希望它导出在其文件中声明的所有对象,除了一个特定函数 local_func .

有没有比写一份明确列出所有其他声明的导出 list (并小心地让这份 list 永远保持最新)更清洁的方法来实现这一点?

换句话说,我想要 import MyModule hiding (local_func) 的类似物。 ,但在导出模块中指定,而不是在导入时指定。

最佳答案

据我所知,目前没有办法做到这一点。

我通常最终做的是有一个中央模块,它重新导出重要的东西,作为一种方便的方式来导入所有必要的东西,而不是在定义这些东西的模块中隐藏任何东西(在某些情况下——你可能不会预见到! - 让您的用户更容易修改模块中的内容)。

为此,请使用以下语法:

-- |Convenient import module
module Foo.Import (module All) where

-- Import what you want to export
import Foo.Stuff as All hiding (local_func)
-- You can import several modules into the same namespace for this trick!
-- For example if using your module also requires 'decode' from "Data.Aeson" you can do
import Data.Aeson as All (decode)

您现在已经方便地导出了这些东西。

关于Haskell:隐藏模块导出中的特定功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com