sS asciiTable(LS headers, LL data) { new L buffers; for i over headers: addAll(listGetOrCreate(buffers, i, L), headers.get(i), " "); for unnull (LS line : data) for i over line: listGetOrCreate(buffers, i, L).add(line.get(i)); LS out = lines(asciiSideBySideWithBarsAllAround(map lines(buffers))); if (l(lines) > 2) lines.set(2, lines.get(2).replace(" ", "-")); ret lines(out); }