PureBasic is a single-pass compiler and therefore requires the use of forward declarations where necessary. The problem with this is that modules cannot be forward-declared.
Yes, we can just redefine stuff explicitly in another module but this completely circumvents the self-documenting use case of modules as namespaces.