为什么要为类型设置单独的模块?

mar*_*usz 7 haskell types design-patterns

为什么将类和类型定义放在特殊的模块中而不是将它们放在相应的命名空间中是很常见的?

例如,让我们从Yi源代码中获取Config记录.为什么决定在Yi.Types而不是Yi.Config中定义它?

Car*_*arl 9

几乎总是要避免模块之间的循环依赖.GHC处理得非常糟糕.它们在理论上是允许的,但机制是如此痛苦,几乎总是避免.