Generally you wouldn't even need to call "use Chain" because Chain is in the same namespace so you can just go ahead and use it.
As the link to the "cascading filesystem" stuff points out however, it's not so simple in this case.
All classes within Proem are actually created in the Proem\Api\ namespace. However, when you go to use one you must always use it from Proem\
Lets use Foo as an example:
use Proem\Foo;{/php]
This searches the Proem namespace for Foo, when not found, it will then search Proem\Api. Once located it will alias the class to Proem\Foo and give you access to it.
Interanally all classes are declared in Proem\Api\ yet used from Proem\
This means that a user can override the functionality of Foo throughout the entire framework without needing to hack the framework itself. You would simply create a file within the Proem namespace and extend Proem\Api\Foo
[code=php:0]
namespace Proem;
class Foo extends \Proem\Api\Foo {}
Now, anywhere (including within the framework itself) that access Proem\Foo will get your new class instead of the original one declared within Proem\Api\Foo which it would normally get.
I understand that there is a bit going on here, but this functionality allows great flexability and for the most part it is working.
I'm at work at the moment but will be investigating this issue tonight when I get home as it is blocking progress. I'll let you guys know if I find a solotion.
I already had an idea of moving all components into there own namespace anyway (not because of this issue), so this might be the raod I end up travelling down.
Thanks for taking a look.