如何在模块导入中处理循环依赖?

时间:2018-02-16 00:34:26

标签: alloy

我有一个模块Reflexive,它导入模块Irreflexive:

module Reflexive
open Irreflexive

模块Irreflexive导入模块Reflexive:

module Irreflexive
open Reflexive

导致此错误消息:

Circular dependency in module import.

我确实想要一个反射模块来导入反射模块(反射关系的补充是无反射的)。

而且我确实想要一个输入反射模块的反射模块(反射关系的补充是反身的)。

有没有办法处理这个循环依赖,而不将所有内容合并到一个模块中?

1 个答案:

答案 0 :(得分:2)

直接解决您的问题的方法是声明第三个模块,其中声明同时需要反身和反身概念的所有谓词/函数/事实(例如,如您所述的补充)。 然后,该模块可以打开Reflexive和Irreflexive模块,而不会产生任何循环依赖。