Compile circular dependency

Hi sv forum,
There is an issue that always annoys me when i write verification environment.

my compilation looks something like this
inculde dir to sequence item directory
sequence_item_pkg.sv

inculde dir to sequence directory
sequence_pkg.sv

inculde dir to agent directory
agent_pkg.sv

inculde dir to test directory
test_pkg.sv

In most case it works fine, but some times I need for example that a sequence will include a pointer to class
that is being compiled after the sequence. if this class is in the same package I can write typedef in the beginning of the package.
But what if this class is not in the same package?

In reply to shimonc:

Typically this means you have too many packages. There’s no reason to have things in separate packages if they always will be used together.