anchor.diff:      let _outLinesAfterPatterns = new HashSet<Regex>()
       let _outLinesBeforePatterns = new HashSet<Regex>()
       let _searchPatterns = new HashSet<Regex>()
  -    let mutable _archivesOnly = false
  -    let mutable _debug = false
  -    let mutable _doTiming = false
  -    let mutable _excludeHidden = true
  -    let mutable _firstMatch = false
  -    let mutable _linesAfter = 0
  -    let mutable _linesBefore = 0
  -    let mutable _listDirs = false
  -    let mutable _listFiles = false
  -    let mutable _listLines = false
  -    let mutable _maxLineLength = 150
  -    let mutable _multiLineSearch = false
  -    let mutable _printResults = false
  -    let mutable _printUsage = false
  -    let mutable _printVersion = false
  -    let mutable _recursive = true
  -    let mutable _searchArchives = false
  -    let mutable _startPath = ""
  -    let mutable _uniqueLines = false
  -    let mutable _verbose = false
   
       // read-only member properties
       member this.InArchiveExtensions = _inArchiveExtensions
  
positive.code:         this.AddPattern(_searchPatterns, pattern)
  
      member this.SetArchivesOnly() =
          this.ArchivesOnly = true &&
          this.SearchArchives = true
  
      member this.SetDebug() =
          this.Debug = true &&
          this.Verbose = true
  
      override this.ToString() =
          "SearchSettings(" +
          String.Format("ArchivesOnly: {0}", _archivesOnly) +
          String.Format(", Debug: {0}", _debug) +
          String.Format(", DoTiming: {0}", _doTiming) +
          String.Format(", ExcludeHidden: {0}", _excludeHidden) +
          String.Format(", FirstMatch: {0}", _firstMatch) +
          String.Format(", InDirPatterns: {0}",  "[\"" + String.Join("\", \"", _inDirPatterns) + "\"]") +
          String.Format(", InExtensions: {0}",  "[\"" + String.Join("\", \"", _inExtensions) + "\"]") +
          String.Format(", InFilePatterns: {0}",  "[\"" + String.Join("\", \"", _inFilePatterns) + "\"]") +
          String.Format(", LinesAfter: {0}", _linesAfter) +
          String.Format(", LinesBefore: {0}", _linesBefore) +
          String.Format(", ListDirs: {0}", _listDirs) +
          String.Format(", ListFiles: {0}", _listFiles) +
          String.Format(", ListLines: {0}", _listLines) +
          String.Format(", MaxLineLength: {0}", _maxLineLength) +
          String.Format(", MultiLineSearch: {0}", _multiLineSearch) +
          String.Format(", OutDirPatterns: {0}", "[\"" + String.Join("\", \"", _outDirPatterns) + "\"]") +
          String.Format(", OutExtensions: {0}", "[\"" + String.Join("\", \"", _outExtensions) + "\"]") +
          String.Format(", OutFilePatterns: {0}", "[\"" + String.Join("\", \"", _outFilePatterns) + "\"]") +
          String.Format(", PrintResults: {0}", _printResults) +
          String.Format(", PrintUsage: {0}", _printUsage) +
          String.Format(", PrintVersion: {0}", _printVersion) +
          String.Format(", Recursive: {0}", _recursive) +
          String.Format(", SearchArchives: {0}", _searchArchives) +
          String.Format(", SearchPatterns: {0}", "[\"" + String.Join("\", \"", _searchPatterns) + "\"]") +
          String.Format(", StartPath: \"{0}\"", _startPath) +
          String.Format(", Verbose: {0}", _verbose) +
          ")"
      ;;
  
negative.code:     member this.HasDirPatterns = Seq.length _inDirPatterns > 0 || Seq.length _outDirPatterns > 0
      member this.HasFilePatterns = Seq.length _inFilePatterns > 0 || Seq.length _outFilePatterns > 0
  
      // read-write member properties
      member val StartPath = "" with get,set
      member val ArchivesOnly = false with get,set
      member val Debug = false with get,set
      member val DoTiming = false with get,set
      member val ExcludeHidden = true with get,set
      member val FirstMatch = false with get,set
      member val LinesAfter = 0 with get,set
      member val LinesBefore = 0 with get,set
      member val ListDirs = false with get,set
      member val ListFiles = false with get,set
      member val ListLines = false with get,set
      member val MaxLineLength = 150 with get,set
      member val MultiLineSearch = false with get,set
      member val PrintResults = false with get,set
      member val PrintUsage = false with get,set
      member val PrintVersion = false with get,set
      member val Recursive = true with get,set
      member val SearchArchives = false with get,set
      member val UniqueLines = false with get,set
      member val Verbose = false with get,set
  
      // member methods
      member this.AddExtension(set : HashSet<string>, ext : string) =
  