anchor.diff:      TCmdId = cardinal;
   
     procedure define( out cmd : TCmdId; thunk : TThunk; token : TToken );
  -  procedure init; overload;
  -  procedure init(shell : IVorTask); overload;
     procedure launch( const cmd : TCmdId ); overload;
     procedure launch( const cmd : TToken ); overload;
     procedure launch( task : IVorTask ); overload;
  
positive.code:     if not found then
        raise Exception.Create('undefined: ' + cmd );
    end;
    
  procedure launch( task : IVorTask );
    begin
      tasks.Append( task );
    end;
    
  procedure step;
    var i, n : cardinal;
    begin
  
negative.code:   tasks	 : GArray<IVorTask>;
    thunks : array of TThunk;
    tokens : array of TToken;
  
  
  procedure define( out cmd : TCmdId; thunk : TThunk; token : TToken );
    begin
      cmd := length(thunks);
  