anchor.diff:    tasks	 : GArray<IVorTask>;
     thunks : array of TThunk;
     tokens : array of TToken;
  -  
  -  
  -procedure init;
  -  begin
  -    tasks := (GArray<IVorTask>).Create;
  -  end;
  -  
  -procedure init(shell : IVorTask);
  -  begin
  -    init;
  -    launch(shell);
  -  end;
  +
    
  -  
   procedure define( out cmd : TCmdId; thunk : TThunk; token : TToken );
     begin
       cmd := length(thunks);
  
positive.code:   end;
  
  initialization
  
  finalization
    SetLength(tokens, 0);
    SetLength(thunks, 0);
  
negative.code:     TCmdId = cardinal;
  
    procedure define( out cmd : TCmdId; thunk : TThunk; token : TToken );
    procedure launch( const cmd : TCmdId ); overload;
    procedure launch( const cmd : TToken ); overload;
    procedure launch( task : IVorTask ); overload;
  