! x and y are numbers, boards are 2d arrays SYMBOL: _ : marker-at ( x y board -- marker ) nth nth ; : occupied? ( x y board -- ? ) marker-at _ eq? not ; :: in-bounds? ( x y board -- ? ) x y [ 0 >= ] bi@ and x y [ board length < ] bi@ and and ; : available? ( x y board -- ? ) 3dup in-bounds? [ occupied? not ] when ; ! The word available? cannot be executed because it failed to compile ! ! The input quotation to “when” doesn't match its expected effect ! Input Expected Got ! [ occupied? not ] ( ..a -- ..a ) ( x x x -- x )