anchor.diff:          new Regex(@"\<.*\>")
       |]
   
  -let internal stripFormattingTags(s: string) = 
  +let private stripFormattingTags(s: string) = 
       Array.fold (fun (a: string)(r: Regex) -> r.Replace(a, "")) s formattingRegexes
   
  +// Filters for strings that we don't want to extract.
   let private stringEndsInDotTxt(s: string) = s.EndsWith(".txt", StringComparison.InvariantCultureIgnoreCase)
   let private stringIsJustNumbersAndCommas(s: string) = s.ToCharArray() |> Array.forall(fun c -> (c = ',') || (c |> Char.IsDigit))
   let private stringIsTooShort(s: string) = s.Length <= 1
  
positive.code:             (Path.Combine(path, @"game\language_x1.dll"), x1LessonEntryWithId.ID)
          |]
  
      let extractCardsForModule(language: string)((modulePath: string, lid: int)) = 
          let moduleHandle = PInvoke.Kernel32.LoadLibraryEx(modulePath, nativeint 0, PInvoke.Kernel32.LoadLibraryExFlags.LOAD_LIBRARY_AS_IMAGE_RESOURCE)
          let resourceNames = getResourceNames(moduleHandle)
          let stringIds = 
  
negative.code:             true
  
      let enumNameDelegate = new Kernel32.EnumResNameProc(enumNameProc)
      if not(Kernel32.EnumResourceNames(languageDll, Kernel32.RT_STRING, enumNameDelegate, nativeint 0)) then
          failwith "unable to enumerate string resource names"
  
      resourceNameList
  
  let private getLanguagesForNamedResource(languageDll: Kernel32.SafeLibraryHandle)(name: nativeint) = 
  