> > But it's also the case that for a _user_ the syntax > > of `(cl-)loop' is complex - certainly much more > > complex than the usual Lisp syntax. You essentially > > have to learn another language - `loop' - to use it. > > That's what I meant, actually, yes. > > I'm not opposed to introducing specialized sublanguages (after all, I've > done that myself for `pcase`, `setf`, and `bindat`, and I'm not opposed > to things like `rx` or `peg`), but I think what annoys me in `cl-loop` > is that you cannot understand each subelement independently because the > effect of each element often depends on the presence/absence of other > elements or the place where it appears, ...: it's not just a separate > language but that language is not modular (and hence in my view is a bad > language design). 100% agreement. > Shiver's [Anatomy of a Loop]( > https://www.ccs.neu.edu/home/shivers/papers/loop.pdf) is much > better in this respect, but I'm still not a big fan because for example > (bind ) changes the environment of *subsequent* expressions, > which I find ugly (admittedly, he does that in Scheme where `define` > already suffers from the same problem). Thanks for that; wasn't familiar with it.