[ stack ] is value.bs ( --> n ) [ stack ] is nest.bs ( --> n ) [ stack ] is test.bs ( --> n ) [ ]'[ test.bs put value.bs put nest.bs put 1 - swap [ 2dup < if done 2dup + 1 >> nest.bs share over peek value.bs share swap test.bs share do iff [ 1 - unrot nip ] again [ 1+ nip ] again ] drop nest.bs take over peek value.bs take 2dup swap test.bs share do dip [ test.bs take do ] or not dup dip [ not + ] ] is bsearchwith ( n n [ x --> n b ) [ dup echo over size 0 swap 2swap bsearchwith < iff [ say " was identified as item " ] else [ say " could go into position " ] echo say "." cr ] is task ( [ n --> n )