XO0604: cyclic module imports
Modules may not import each other in a cycle, so every module can be checked and built after its dependencies. Move the shared declarations into a third module that both import, or merge the two modules. See core 4.1.
Example
// a/a.xo
use example.com/app/b
pub fn fa() -> Int { b.fb() }
// b/b.xo
use example.com/app/a
pub fn fb() -> Int { 1 }
pub fn g() -> Int { a.fa() }Fix
// a/a.xo
use example.com/app/b
pub fn fa() -> Int { b.fb() }
// b/b.xo (no longer imports a)
pub fn fb() -> Int { 1 }Run xo explain XO0604 for this text in a terminal, or see
section 10.6 of the specification.