The standard RETRO language provides `bi` and `tri` combinators to apply quotes to two or three values in various combinations. Sometimes it may be necessary to do this with four values. Note that this is *ugly* code. It's functional, but if you can refactor to avoid needing it, it'll likely be better in the long run. `quad` applies four quotes to a value. These are equivilent: #10 [ #1 + ] call #10 [ #1 - ] call #10 [ #2 + ] call #10 [ #3 + ] call #10 [ #1 + ] [ #1 - ] [ #2 + ] [ #3 + ] quad ~~~ :quad (xqqqq-) 'abcde 'abacadae reorder push push push push push push call pop pop call pop pop call pop pop call ; ~~~ `quad*` takes eight values (!) and applies each quote to a specific value. E.g., these are equivilent: #10 [ #1 + ] call #11 [ #1 - ] call #12 [ #2 + ] call #13 [ #3 + ] call #10 #11 #12 #13 [ #1 + ] [ #1 - ] [ #2 + ] [ #3 + ] quad* ~~~ :quad* (abcdqqqq-) 'abcdefgh 'aebfcgdh reorder push push push push push push call pop pop call pop pop call pop pop call ; ~~~ `quad@` takes four values and a quote, and applies the quote to each value in order. These are equivilent: #10 [ #1 + ] call #11 [ #1 + ] call #12 [ #1 + ] call #13 [ #1 + ] call #10 #11 #12 #13 [ #1 + ] quad@ ~~~ :quad@ (abcdq-) 'abcde 'abcdeeee reorder quad* ; ~~~