code: protected Iterator<Class<?>> compatibleCategories(final Object pProvider) {
          return new FilterIterator<Class<?>>(categories(),
                                    new FilterIterator.Filter<Class<?>>() {
                                        public boolean accept(Class<?> pElement) {
                                            return pElement.isInstance(pProvider);
                                        }
                                    });
      }
docs: Returns an {@code Iterator} containing all categories in this registry
  the given {@code pProvider} <em>may be registered with</em>.
  <p/>
  The iterator does not support removal.
  
  @param pProvider the provider instance
  @return an {@code Iterator} containing all categories in this registry
  the given {@code pProvider} may be registered with