sclass WordTokReplacerWithSecondIn > WordTokReplacer { S secondIn; class PartialApplication { SS map; S rewrittenSecondIn; *(SS *map) { rewrittenSecondIn = join(replaceCodeTokensUsingMap_curly(wordTok_noBrackets(secondIn), map)); } toString { ret sfu(this); } } *(S sentence, Collection vars, S *secondIn, LS replaced_multi) { super(sentence, vars, replaced_multi); } S rewrite(S s, SS map) { ret join(replaceCodeTokensUsingMap_curly(wordTok_noBrackets(s), map); } run { //emit(new PartialApplication(map)); emit(WordTokReplacer(rewrite(secondIn, map), vars, map join(tokReplaced))); } }