> Looking at your patch a second time, I don't see how/where it > handles (< a b c) in byte-compiled code: the byte-codes only > handle 2-arguments, and the byte-compiler is left unchanged. (disassemble (byte-compile (lambda () (< x y)))) byte code: args: nil 0 varref x 1 varref y 2 lss 3 return (disassemble (byte-compile (lambda () (< x y z)))) byte code: args: nil 0 constant < 1 varref x 2 varref y 3 varref z 4 call 3 5 return So it works with many args, it just byte compiles to a general function call rather than to a specific comparison bytecode. I had considered this before submitting the patch, but decided it might be a premature optimization to extend the byte compiler in this way. There are no users of more than 2 args to start with. 'make check' runs the new data-tests as byte compiled, so it has been tested.