ERROR: variable-required variable ;
-: required ( symbol -- str/f )
- dup get [ nip ] [ variable-required ] if* ;
+: required ( symbol -- obj )
+ [ get ] [ variable-required ] ?unless ;
: 2required ( symbol1 symbol2 -- obj1 obj2 ) [ required ] bi@ ; inline
: 2get ( symbol1 symbol2 -- obj1 obj2 ) [ get ] bi@ ; inline
ERROR: one-variable-only symbol1 symbol2 value1 value2 ;
-: one-of ( symbol1 symbol2 -- str/f first? )
+: one-of ( symbol1 symbol2 -- obj1/obj2 first? )
2dup [ get ] bi@ 2dup xor* over
[ [ 4drop ] 2dip ] [ one-variable-only ] if ;