Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 为什么要为类型设置单独的模块?_Haskell_Design Patterns_Types - Fatal编程技术网

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

Haskell 为什么要为类型设置单独的模块?,haskell,design-patterns,types,Haskell,Design Patterns,Types,为什么将类和类型定义放在特殊类型模块中而不是放在相应的命名空间中很常见 例如,让我们从Yi源代码中获取记录。为什么决定将其定义在内部而不是?几乎总是这样做,以避免模块之间的循环依赖关系。GHC对它们的处理非常糟糕。理论上是允许的,但机制非常痛苦,几乎总是避免使用。我想说的是,这些类型通常是相互依赖的,或者需要大量导入。只需在.types模块中定义一组类型,然后在更有意义的地方重新导出它们,这真的很容易。我认为这不是“主要基于观点”,因为这是GHC技术限制的结果。你能详细说明一下吗?也许是一个例子

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


例如,让我们从Yi源代码中获取记录。为什么决定将其定义在内部而不是?

几乎总是这样做,以避免模块之间的循环依赖关系。GHC对它们的处理非常糟糕。理论上是允许的,但机制非常痛苦,几乎总是避免使用。

我想说的是,这些类型通常是相互依赖的,或者需要大量导入。只需在
.types
模块中定义一组类型,然后在更有意义的地方重新导出它们,这真的很容易。我认为这不是“主要基于观点”,因为这是GHC技术限制的结果。你能详细说明一下吗?也许是一个例子?查找“接口文件(.hi文件)”和“单独编译”