anchor.diff:    i: cardinal;
   begin
     new(dumbNode);
  +  dumbNode.id := current_id;
     dumbNode.name := lhs;
     hashCode := hash(lhs);
     dumbNode.next := table[hashCode];
  
positive.code:   PGmrNode = ^RGmrNode;
    AGmrNode = array of PGmrNode;
    RGmrNode = record
      name: string;
      next: PGmrNode;
      rhs : array of PGmrAtom;
  
negative.code: begin
  end;
  
  var ccc: cardinal;
  function current_id: cardinal;
  begin
    inc(ccc);
    result := ccc;
  end;
  
  procedure TGmrHash.add(const lhs, rhs: string);
  var dumbNode: PGmrNode;
    hashCode: word;
  