docs: private int[][][] adapt( String names[], String domains[][], boolean exact) {
      int maplen = names.length;
      int map[][][] = new int[maplen][][];
      // Make sure all are compatible
      for( int c=0; c<names.length;++c) {
              // Now do domain mapping
        String ms[] = _domains[c];  // Model enum
        String ds[] =  domains[c];  // Data  enum
        if( ms == ds ) { // Domains trivially equal?
        } else if( ms == null ) {
          throw new IllegalArgumentException("Incompatible column: '" + _names[c] + "', expected (trained on) numeric, was passed a categorical");
        } else if( ds == null ) {
          if( exact )
            throw new IllegalArgumentException("Incompatible column: '" + _names[c] + "', expected (trained on) categorical, was passed a numeric");
          throw H2O.unimpl();     // Attempt an asEnum?
        } else if( !Arrays.deepEquals(ms, ds) ) {
          map[c] = getDomainMapping(_names[c], ms, ds, exact);
        } // null mapping is equal to identity mapping
      }
      return map;
    }