gpt4 book ai didi

haskell - 复导出合格-现在怎么解决,有什么解决办法吗?

转载 作者:行者123 更新时间:2023-12-02 13:37:05 26 4
gpt4 key购买 nike

我遇到了与此问题 Re-export qualified? 中描述的完全相同的问题

module Foo.A where

foo = 42

and

module Foo.B where

foo = 12

and you want to write a super module

module Foo (
module Foo.A
, module Foo.B
) where

import Foo.A
import Foo.B

which re-exports those modules, you would get a name clash.

这是五年前问的,我想从那时起可能发生了一些变化。有过吗?如果没有的话,还有没有解决办法?

考虑使用 Lens 来解决这个问题。

更新:

可以有很多功能foo在每个模块(foo1、foo2 等)中,我想从两个模块中使用它们。还可以有data毕竟,每个模块中的成员名称都相同。

所以隐藏并不是解决办法。

最佳答案

没有新的解决方案,但仍然有解决方案。首先,由于只能导出一个 foo,因此您必须决定要将哪一个导出为裸 foo。然后您只需隐藏另一个并为其别名即可。

module Foo (
module Foo.A
, module Foo.B
, bFoo
) where

import Foo.A
import Foo.B hiding (foo)
import qualified B as B

bFoo = B.foo

好吧,这并不是很优雅,但如果你确实需要的话,这是一个解决方法。

关于haskell - 复导出合格-现在怎么解决,有什么解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488861/

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