简化版层次结构:
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是导入导入循环依赖的sometype的状态。
解决这种循环依赖的方法是什么?感谢。