नहीं, ऐसा नहीं है, लेकिन यह अजीब है कि आपको इसकी आवश्यकता है।
आप रिकर्सिव मॉड्यूल (बेस भाषा का विस्तार) के साथ अजीब चाल करने में सक्षम हो सकते हैं, लेकिन संभवतः समस्या चीजों को बनाने के तरीके में समस्या है, और आपको वास्तव में ऐसे आत्म-संदर्भ की आवश्यकता नहीं है।
पुनरावर्ती मार्ग जा रहा हमेशा वाला अंत में कोई समस्या हो रही है manual for recursive modules
देखें मेरे अनुभव में,। आपको अपने डिजाइन को सरल बनाने और अधिक स्तरित दृष्टिकोण का उपयोग कर किसी भी निर्भरता चक्र को तोड़ने के लिए समय लेना चाहिए। उदाहरण के लिए, यहां आप परीक्षा में एन को परिभाषित करना चाहते हैं और साथ ही टेस्ट को संदर्भित करना चाहते हैं। लेकिन क्या Test_Outside मॉड्यूल को एन और टेस्ट के अन्य हिस्सों के बारे में जानने की आवश्यकता है, या यह केवल टेस्ट की "आधार" परिभाषाओं का उपयोग करता है, जो "एन से पहले" हैं? आप दो अलग "टेस्ट" मॉड्यूल का उपयोग कर सकते हैं, दूसरे को पहले विस्तारित करने के साथ:
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