static SS minusSignsSections(S text) { LS lines = lines(text); L l = indicesOfStartingWithTrim(lines, "--"); new LinkedHashMap out; if (nempty(l)) mapPutIfNemptyValue(out, "", rtrim(lines(subList(lines, 0, first(l)))); 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)); out.put(heading, lines(subList(lines, i1+1, i2))); } ret out; }