While reviewing the above code, I wrote a combinator to implement the pattern: swap [ quot ] dip This allows for: x y z --> x z [ quot ] call y --> x' y ! Copyright (C) 2013 Loryn Jenkins. ! See http://factorcode.org/license.txt for BSD license. USING: kernel shuffle sequences ; IN: kernel : swip ( x y z -- x' y ) [ swapd ] dip call swap ; inline IN: sequences : append-back-over! ( x y z -- x-z-append! y ) [ append! ] swip ; : append-back-over ( x y z -- x-z-append y ) [ append ] swip ; However, subsequent editing of the program showed that this wasn't necessary. So, swip ended up the offcuts bin.