2

层次结构的简化版本:

module A where

import MyState

data A a = A (StateT MyState IO a) deriving (...)

现在有一个模块 MyState:

module MyState where

import SomeType

data MyState = MyState { st :: SomeType, ... }

最后是引入循环依赖的模块:

module SomeType where

import A

data SomeType = SomeType { f :: A (), ... }

如您所见,我的 SomeType 导入 A 是因为我们的一个字段需要它。并且 A 正在导入状态,该状态导入了某种引入循环依赖的类型。

解决这种循环依赖的方法是什么?谢谢。

4

0 回答 0