Nein, gibt es nicht, aber es ist seltsam, dass Sie müssen.
Sie können seltsame Tricks mit rekursiven Modulen (eine Erweiterung der Basissprache) machen, aber das Problem liegt wahrscheinlich in der Art und Weise, wie Sie Dinge formulieren, und Sie brauchen eine solche Selbstreferenz eigentlich nicht.
Siehe manual for recursive modules
Nach meiner Erfahrung ist der rekursive Weg geht immer würde ein Problem am Ende sein. Sie sollten sich stattdessen die Zeit nehmen, Ihr Design zu vereinfachen und einen Abhängigkeitszyklus zu durchbrechen, indem Sie einen mehrschichtigen Ansatz verwenden. Zum Beispiel möchten Sie hier, dass N in Test definiert wird und sich gleichzeitig auf Test bezieht. Aber muss das Test_Outside-Modul über N und andere Teile von Test mit N wissen, oder verwendet es eher nur die "Basis" -Definitionen von Test, die "vor N" sind? Sie können zwei separate "Test" -Module verwenden, wobei das zweite das erste erweitert:
module Test_Outside(Test : Small_Test_Type) = struct ... end
module InnerTest : Small_Test_Type = struct ... end
module Test : Test_type = struct
include InnerTest
module N = Test_Outside(InnerTest)
...
end