What if m4, but sensitive to how humans perceive lines? 
@riley I'm curious what you mean by this! Just changing the definition of dnl or something more significant?
@jamey I'm not quite sure yet. I stumbled upon a line-based reading abstraction some time ago, and I just realised it might make m4-style scripts more readable, but the exact ruleset of how to achieve this is still evading me. My hunch is, once I catch it, it'll have a resemblance to how TeX has a nesting set of modes, and linebreak characters only make sense at the lowest level, but not, say, in the vertical mode.
Hence, the
sign, in fact. I don't always use it as an irony indicator.
@riley I do tend to assume that any apparently-sincere mention of m4 marks its surroundings as a shitpost, purely based on how often people do that. But I think m4's poor reputation is undeserved, and I am sincerely curious where you might go with this, if you figure out more details eventually.
@jamey m4 is one of the genuine early-Unix kind of artefacts: a big leap forward in its original context, but designed with such an aggressive focus on premature optimisation that it kind of froze in time, and once better tools became available, newcomers started to point their fingers at it and laugh impolitely. I have some fondness for #retrocomputing stories like this.
In this case, I'm curious, but I don't have a specific use case for it, at least for now. Knoing how #ADHD minds work, I might stumble upon the useful rule at some point in the future, while working on something entirely different.
FWIW, once upon a time, I had a reason to re-implement the SAS macro language as a stand-alone preprocessor. Because in SAS Institute's usage, the preprocessor's output is virtually always directed directly into the main compiler, and hardly ever visible by a human, SAS Institute kind of gets away with leaving many of the lineation processing details only vaguely specified, but in my use case, looking at the preprocessor's output was an important debugging facility (and, tbh, we typically didn't feed the result into SAS but various SQL engines directly). As a result, I did some kind-of ad hoc refinement of the spec on whitespace handling, much of which amounted to something that might be thought of as corresponding to implicit dnl:s in strategically placed points of m4 code. It's possible that something like this might also be useful for m4 itself.