code: public CcgParser replaceLexicon(int index, CcgLexicon newLexicon) {
      List<CcgLexicon> newLexicons = Lists.newArrayList(lexicons);
      newLexicons.set(index, newLexicon);
  
      return new CcgParser(newLexicons, lexiconScorers, wordSkipWordVar, wordSkipFactor,
          dependencyHeadVar, dependencySyntaxVar, dependencyArgNumVar, dependencyArgVar,
          dependencyHeadPosVar, dependencyArgPosVar, dependencyDistribution, wordDistanceVar,
          wordDistanceFactor, puncDistanceVar, puncDistanceFactor, puncTagSet, verbDistanceVar,
          verbDistanceFactor, verbTagSet, leftSyntaxVar, rightSyntaxVar, combinatorVar,
          binaryRuleDistribution, unaryRuleInputVar, unaryRuleVar, unaryRuleFactor,
          headedBinaryPredicateVar, headedBinaryPosVar, headedBinaryRuleDistribution,
          searchMoveVar, compiledSyntaxDistribution, rootSyntaxVar, rootPredicateVar,
          rootPosVar, rootSyntaxDistribution, headedRootSyntaxDistribution, normalFormOnly);
    }
docs: Creates a new CCG parser by replacing a lexicon of
  this parser with {@code newLexicon}.
  
  @param index
  @param newLexicon
  @return