anchor.diff:  
   implementation
   
  +uses
  +  MarkdownDaringFireball;
  +
  +{ TMarkdownProcessor }
  +
  +class function TMarkdownProcessor.CreateDialect(dialect: TMarkdownProcessorDialect): TMarkdownProcessor;
  +begin
  +  case dialect of
  +    mdDaringFireball : result := TMarkdownDaringFireball.Create;
  +  else
  +    raise Exception.Create('Unknown Markdown dialect');
  +  end;
  +end;
   
   end.
  
positive.code:     function GetUnSafe: boolean; virtual; abstract;
      procedure SetUnSafe(const Value: boolean); virtual; abstract;
    public
      class function CreateDialect(dialect : mdDaringFireball);
  
      // when Unsafe = true, then the processor can create scripts etc.
      property UnSafe : boolean read GetUnSafe write SetUnSafe;
  
negative.code: 
  interface
  
  uses
    SysUtils;
  
  Type
    TMarkdownProcessorDialect = (mdDaringFireball);
  
  