Thanks for the explanation Lukas. I have one follow up question about the example you described,
"So yes, if you're compiling B policy, you needs to have a.if interface file in one directory with B policy sources."
If I have a.if in the B policy sources, is that sufficient or do I need to have a.te also in B policy sources? When I experimented with just a.if B policy compilation failed and was successful when I copied the a.te into B policy sources directory. Is this expected or is it an issue with policies I have written.