Here's an example that shows, why this is not allowed:
method($b);
}
This would be a valid code, but it would fail, if you pass a ConcreteClass to moo, because its method ConcreteClass::method does not allow BClass.
It is complicated, but it is easier to understand, if you see an example.