anchor.diff:    TThunk    = procedure of object;
     TImpStack = GStack<variant>;
     TCmdQueue = TQueue<integer>;
  +  EImpError = class (Exception) end;
     TWord	 = record
       // prev : address;
       word : TStr;
  
positive.code:       NeedsInput, HasOutput : boolean;
        msg : TStr; // input and output buffers
        OnChange : TThunk;
  
        constructor Create(aOwner : TComponent); override;
        destructor Destroy; override;
  
negative.code:   end;
  
  procedure TImpForth.NotFound;
    begin Error(tok + '?')
    end;
  
  procedure TImpForth.Error( s : TStr );
    begin if assigned(OnError) then OnError(s)
    end;
  
  