From what I've found, BlitzMax compiles required modules in order, with the top-level module in a hierarchy compiled last.
I get this :
where a looks like :
Looks good from here.
I get this :
Building Modules Compiling:b.bmx flat assembler version 1.66 3 passes, 443 bytes. Archiving:b.debug.win32.x86.a Compiling:a.bmx flat assembler version 1.66 3 passes, 486 bytes. Archiving:a.debug.win32.x86.a
where a looks like :
module example.a import example.b
Looks good from here.