AFAICT they just change the chaining rule of 2 2 0 from dyad(v, dyad(left, right)) to dyad(dyad(v, right), nilad) if the remainder of the dyadic chain consists of monadic combinations like H, +0, 0+
1 + 1 2 + + 3 $ $ outputs 27 but I think that's smash-printed
i believe it does [1] [+ 1] [2] [++3] which would first evaluate 1, then add 1, and then the nilad 2 causes the 1+1 to be printed, then the first + does v=v+L so 4, then +3 to that
i get the idea behind the 2,2,0 chaining rule for LCCs since it doesn't make sense for the nilad to belong to the chain following it so instead it completes dyadic evaluation and then essentially becomes a monadic chain from there
but i don't actually know if $ behaves differently anywhere. not sure though
so it will keep popping until the number of links it has consumed is at least 2 greater than the number of points in the list of links, except the last link, such that an LCC begins there
but yeah and then the third thing about dyadic 2,1 which i guess is mostly the first thing is that pretty often you need to monadically process zero or one of the arguments, and if you need to process one then you can choose to make it the left argument rather than the right
@hyper-neutrino A chain is an LCC if it's a nilad followed by one or more (dyad-nilad pairs, nilad-dyad pairs, monads). Quicks work by having a condition which dictates when they stop consuming previous links in the chain. Some links (e.g. $) have different behaviour depending on if one of the links they consume is an LCC or not