> In C/C++ world there is no cyclic dependencies resolution either and forward > declarations are required like in Nim. Yet there are many successful large > and huge C/C++ code bases around.
But C/C++ both DO effectively allow cyclic dependencies via forward declarations and file separation into .H and .C/.CPP files. You declare the types and signatures in .H files and the .C/.CPP files can contain references to whatever you want, as long as you include the relevant .H files. This does not work in Nim because A) you can't forward declare types and B) there is file-based visibility.