static ParsedWithTokens pwt_combine(A value, ParsedWithTokens p1, ParsedWithTokens p2) {
assertSame(p1.tok, p2.tok);
ret new ParsedWithTokens(value, p1.tok, min(p1.iStart, p2.iStart), max(p1.iRemaining, p2.iRemaining));
}
// shorter version taking value of first pwt
static ParsedWithTokens pwt_combine(ParsedWithTokens p1, ParsedWithTokens p2) {
ret pwt_combine(p1!, p1, p2);
}