anchor.diff:  : - s` [<->-]<` ;
   : * s` <[>[>+>+<<-]>>[<<+>>-]<<<-]>[-]>[<<+>>-]<<` ;
   
  -: dup  s` [>+>+<<-]>>[<<+>>-]<` ;
  -: drop s` [-]<` ;
  -: nip  s` <[-]>[<+>-]<` ;
  -: over s` <[>>+>+<<<-]>>>[<<<+>>>-]<` ;
  -: tuck s` [>+>+<<-]<[>+<-]>>>[<<<+>>>-]<` ;
  -: swap s` [>+<-]<[>+<-]>>[<<+>>-]<` ;
  -: rot  s` <<[>>>+<<<-]>[<+>-]>[<+>-]>[<+>-]<` ;
  -: -rot s` [>+<-]<[>+<-]<[>+<-]>>>[<<<+>>>-]<` ;
  +: drop ( w -- )                 s` [-]<` ;
  +: nip  ( w1 w2 -- w2 )          s` <[-]>[<+>-]<` ;
  +: dup  ( w -- w w )             s` [>+>+<<-]>>[<<+>>-]<` ;
  +: over ( w1 w2 -- w1 w2 w1 )    s` <[>>+>+<<<-]>>>[<<<+>>>-]<` ;
  +: tuck ( w1 w2 -- w2 w1 w2 )    s` [>+>+<<-]<[>+<-]>>>[<<<+>>>-]<` ;
  +: swap ( w1 w2 -- w2 w1 )       s` [>+<-]<[>+<-]>>[<<+>>-]<` ;
  +: rot  ( w1 w2 w3 -- w2 w3 w1 ) s` <<[>>>+<<<-]>[<+>-]>[<+>-]>[<+>-]<` ;
  +: -rot ( w1 w2 w3 -- w3 w1 w2 ) s` [>+<-]<[>+<-]<[>+<-]>>>[<<<+>>>-]<` ;
  +: dup? ( w -- 0 | w w ) dup if dup then ;
  +
  +: 2drop ( w1 w2 -- ) drop drop ;
  +: 2nip  ( w1 w2 w3 w4 -- w3 w4 ) rot drop rot drop ;
  +: 2dup  ( w1 w2 -- w1 w2 w1 w2 ) over over ;
  +: 2over ( w1 w2 w3 w4 -- w1 w2 w3 w4 w1 w2 ) 3 pick 3 pick ;
  +: 2tuck ( w1 w2 w3 w4 -- w3 w4 w1 w2 w3 w4 ) 3 roll 3 roll 3 pick 3 pick ;
  +: 2swap ( w1 w2 w3 w4 -- w3 w4 w1 w2 ) 3 roll 3 roll ;
  +: 2rot  ( w1 w2 w3 w4 w5 w6 -- w3 w4 w5 w6 w1 w2 ) 5 roll 5 roll ;
  +
  +: negate 0 swap - ;
  +: under+ rot + swap ;
   
   : emit   s` .` drop ;
   : key  0 s` ,` ;
  
positive.code:     48 + emit
      space
  ;
  
  : > ( a b -- bool )
      begin dup while
          over
          if
  
negative.code: : space  bl emit ;
  : spaces bl s` <[>.<-]>[-]<<` ;
  
  : dec. ( n -- )
      100 /mod
      dup if
          48 + emit
  