static L minusSignSectionPairs(S text) { LS lines = lines(text); L l = indicesOfStartingWithTrim(lines, "--"); new L out; // prelude if (nempty(l)) { S s = rtrim(lines(subList(lines, 0, first(l)))); if (nempty(s)) addPair(out, "", s); } for i over l: { int i1 = l.get(i); int i2 = or(get(l, i+1), l(lines)); S heading = trim(lines.get(i1)); int iHeading = 0; while (iHeading < l(heading) && heading.charAt(iHeading) == '-') iHeading++; heading = trim(substring(heading, iHeading)); addPair(out, heading, lines(subList(lines, i1+1, i2))); } ret out; }