anchor.diff:    type GSpan<t> = class
       public type
         tag = class( anchor )
  -	public
  +        public
             is_start, is_end : boolean;
  -          span		 : GSpan<T>;
  +          span : GSpan<T>;
           end;
       public
         start_tag, end_tag : tag;
  
positive.code: {$mode delphi}{$i xpc.inc}{$H+}
  unit mnbuf;
  interface uses xpc, rings, tiles, sysutils, fs;
  type
    token = string;
    anchor = TObject;
  
negative.code:     for i := 0 to self.length -1 do writeln(txt, self[i]);
      close( txt );
    end;
  
  { TStrings conversion routines (.strings property) }
  
  procedure TBuffer.LoadFromStrings( strings : TStrings );
    var line: string;
    begin
      for line in strings do self.AddLine(line);
    end;
  
  function TBuffer.ToStrings : TStrings;
    var i : cardinal;
    begin
      result := TStringList.Create;
      for i := 0 to self.length -1 do result.Add(self[i]);
    end;
  
  function TBuffer.ToString : string;
    var i, len : cardinal;
    begin
      len := self.length;
      if len > 0 then result := self[0] else result := '';
      if len > 1 then
        for i := 1 to self.length -1 do appendstr(result, self[i]);
    end;
  
  procedure TBuffer.Clear;
    begin
      while self.length > 0 do self.DelLine(0)
    end;
  
  { ITextTile implementation for TBuffer }
  function TBuffer.GetLength : cardinal;
  