docs: protected Iterator<Class<?>> containingCategories(final Object pProvider) {
          // TODO: Is removal using the iterator really a good idea?
          return new FilterIterator<Class<?>>(categories(),
                                    new FilterIterator.Filter<Class<?>>() {
                                        public boolean accept(Class<?> pElement) {
                                            return getRegistry(pElement).contains(pProvider);
                                        }
                                    }) {
              Class<?> current;
  
              public Class next() {
                  return (current = super.next());
              }
  
              public void remove() {
                  if (current == null) {
                      throw new IllegalStateException("No current element");
                  }
                  
                  getRegistry(current).deregister(pProvider);
                  current = null;
              }
          };
      }