Instance matching with externals is not "pure", specially not during inlining. If multiple externals share the same object instance an instance match should be true, currently this is determined as false. The problem is, this can not be verified at compiletime.
filtermodule FM1
{
externals
ext1 : FooBar = FooBar.instance();
inputfilters
f1 : Void = (true) { target = ext1; }
}
filtermodule FM2
{
externals
ext2 : FooBar = FooBar.instance();
inputfilters
f2 : Dispatch = (target == ext2)
}
pre(FM1,FM2)
If we assume FooBar.instance() always returns the same instance, then f2 should match and dispatch the message. If FooBar.instance() returns a different instance, then f2 won't match.