USE: math.combinatorics MACRO: sort-args ( stencil -- ) 2 all-combinations [ [ first ] [ second ] bi 2dup swap '[ 2dup [ @ ] [ @ ] bi* and ] [ 2drop +gt+ ] 2array -rot '[ 2dup [ @ ] [ @ ] bi* and ] [ 2drop +lt+ ] 2array 2array ] map concat [ '[ [ _ cond ] sort ] ] call ; { { } 0 "hey" } { [ fixnum? ] [ string? ] [ array? ] } sort-args . result: { 0 "hey" { } }