code: private boolean checkCombineValidity(Pail p, CopyArgs args) throws IOException {
          if(args.force) return true;
          PailSpec mine = getSpec();
          PailSpec other = p.getSpec();
          PailStructure structure = mine.getStructure();
  
          boolean typesSame = structure.getType().equals(other.getStructure().getType());
          //can always append into a "raw" pail
          if(!structure.getType().equals(new byte[0].getClass()) && !typesSame)
              throw new IllegalArgumentException("Cannot combine two pails of different types unless target pail is raw");
  
          //check that structure will be maintained
          for(String name: p.getUserFileNames()) {
              checkValidStructure(name);
          }
  
  
          return mine.getName().equals(other.getName()) && mine.getArgs().equals(other.getArgs());
      }
docs: returns if formats are same