code: @SuppressWarnings("unchecked")
      static <S extends Storable> OrFilter<S> getCanonical(Filter<S> left, Filter<S> right) {
          return (OrFilter<S>) cCanonical.put(new OrFilter<S>(left, right));
      }
docs: Returns a canonical instance.
  
  @throws IllegalArgumentException if either filter is null