anchor.diff:  t: QUERY ( -- )
     TIB 80 'EXPECT @EXECUTE #TIB ! DROP 0 >IN ! ;
   
  +\ pg 36-37 words
  +
  +t: CATCH ( xt -- 0 | err# )
  +  SP@ >R  HANDLER @ >R  RP@ HANDLER ! EXECUTE R> HANDLER !  R> DROP  0 ;
  +
  +t: THROW ( err# -- err# )
  +  HANDLER @ RP!  R> HANDLER !  R> SWAP >R SP! DROP R> ;
  +
  +tcreate NULL$ 0 t,
  +
  +t: ABORT ( --) NULL$ THROW ;
  +
  +t: abort" ( f --) IF do$ THROW THEN do$ DROP ;
  +( " to restore syntax highlighting )
  +
  +: tplace	dup tc, begin dup while over c@ tc, 1 /string repeat 2drop ;
  +: ",		[char] " word count tplace /cell talign ;
  +: ~ABORT"	[t'] abort" t, ", ;
  +: ~."		[t'] ."| t, ", ;
  +
  +\ pg 38 words
  +
  +t: .S ( --) CR DEPTH FOR AFT R@ PICK . THEN NEXT ."  <sp" ;
  +t: $INTERPRET ( a --)
  +  NAME? IF DUP COUNT TYPE CR
  +    DUP CELL+ CELL+ @ 2 AND IF ABORT" Compile-only" THEN .S CR
  +    EXECUTE .S CR EXIT
  +  THEN
  +  'NUMBER @EXECUTE IF EXIT THEN
  +  THROW ;
  +
  +t: [ ( --) doLIT $INTERPRET 'EVAL ! ; timmediate
  +t: .OK ( --) doLIT $INTERPRET 'EVAL @ = IF ."  ok" THEN CR ;
  +t: ?STACK ( --) DEPTH 0< ABORT" underflow" ;
  +t: EVAL ( --)
  +  BEGIN TOKEN DUP C@ WHILE
  +    'EVAL @EXECUTE ?STACK
  +  REPEAT DROP 'PROMPT @EXECUTE ;
   
   \ I/O device drivers.
   
  
positive.code: 
  t: init		doLIT accept 'EXPECT !
  		doLIT kTAP 'TAP !
  		SP@ SP0 !
  		TIBB 80 #TIB 2!
  ;
  
  t: !io		0kia 0mgia init
  		BEGIN QUERY CR #TIB 2@ TYPE CR AGAIN
  		;
  
  
negative.code:   THEN NEXT 0 ;
  
  t: find ( a va -- xt na | a F )
    ( TODO Find a better way to scan the dictionary. )
    BEGIN DUP WHILE
      OVER COUNT ( a va a' l )
      >R OVER >NAME 1+ R> ( a va a' va+1 l )
      SAME? 0 = IF
        2DROP NIP DUP >NAME EXIT
      THEN
      2DROP CELL+ CELL+ @ -8 AND
  