In line with what @mrjbq7 said about simplifying the data flow: try out different combinators, refactoring, changing the order of yours words' inputs, etc.  All else fails, there's always `locals`.

E.g., changing the order of the inputs so you don't have to shuffle `size` gives you the ability to curry it with a quotation passed to a combinator:
```factor
: same-row? ( n m size -- ? )
    '[ _ swap row-of-n ] bi@ = ;
```

Or using `locals` lets you punt on the issue altogether:
```factor
:: same-row? ( size n m -- ? )
    size n row-of-n
    size m row-of-n = ;
```