Nie, nie ma, ale jest to dziwne, czego potrzebujesz.
Możliwe, że będziesz w stanie wykonywać dziwne sztuczki z modułami rekursywnymi (rozszerzenie języka bazowego), ale najprawdopodobniej problem leży w sposobie formułowania rzeczy i nie potrzebujesz takiej samo-referencji.
Zobacz manual for recursive modules
Z mojego doświadczenia wynika, przechodząc rekurencyjnej trasy zawsze będzie problem w końcu. Powinieneś raczej poświęcić czas na uproszczenie projektu i złamanie dowolnego cyklu zależności za pomocą bardziej warstwowego podejścia. Na przykład tutaj chcesz, aby N był zdefiniowany w teście i jednocześnie aby odnosić się do testu. Ale czy moduł Test_Outside musi wiedzieć o N i innych częściach Testu używając N, czy raczej używa tylko "podstawowych" definicji Testu, które są "przed N"? Możesz użyć dwóch oddzielnych modułów "Test", z drugim rozszerzając pierwszy:
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