static L parseHexRanges(S s) { ret map(splitAtComma_trim(s), item -> { LS parts = splitAtMinus(item); int start = hexToInt(first(parts)); if (l(parts) == 1) ret intRange_incl(start, start); else if (l(parts) == 2) { int end = hexToInt(second(parts)); ret intRange_incl(start, end); } else fail("Too many minuses"); }); }