anchor.diff:      
       /// Get all transformed files of a sequence of directories by extension.
       let GetFilesTransformed transform caseSensitive ext dirs =
  -        dirs |> Seq.collect (Directory.GetFilesTransformed transform caseSensitive ext) |> Array.ofSeq
  +        let select (file : string) = 
  +            if caseSensitive then 
  +                if file.EndsWith(ext) then true else false
  +            else
  +                if file.ToLowerInvariant().EndsWith(ext.ToLowerInvariant()) then true else false
  +        dirs |> Seq.collect (Directory.GetFilesTransformed transform select) |> Array.ofSeq
   
       /// Get FileInfo of all files of a sequence of directories by extension.
       let GetFileInfos caseSensitive ext dirs = 
  
positive.code: 
  module Directory = 
      /// Get all transformed files of a directory by extension.
      let rec GetFilesTransformed transform caseSensitive ext dir =
          let files =  try Directory.GetFiles dir with | _ -> [||]
          let dirs = try Directory.GetDirectories dir with | _ -> [||]
          seq { for file in files do
                    if caseSensitive then 
                        if file.EndsWith(ext) then 
                            yield (transform file)
                    else
                        if file.ToLowerInvariant().EndsWith(ext.ToLowerInvariant()) then 
                            yield (transform file)
                for sub in dirs do
                    yield! GetFilesTransformed transform caseSensitive ext sub }
  
  
  module Utils =
  
negative.code:         files |> Array.map hashedFile |> Array.choose id
  
      /// Get SHA1-hashes with label and elapsed calculation time for each given file.
      let GetFilesSHA1 verbose files = 
          files
          |> GetFilesHashedDiagnostic verbose [|"SHA1", HashAlgorithm.Create("SHA1")|] 
          |> Array.map (fun (h,f) -> 
              let h_ms, h_t, h_hash = h.[0]
              (h_ms, h_t, h_hash, f))
  
      /// Get SHA1-hashes with label and elapsed calculation time for the given file.
      let GetFileSHA1 verbose file = [|file|] |> GetFilesSHA1 verbose
  
      /// Get SHA1-grouping of the given files.
      let GetFilesGroupedBySHA1 verbose files = 
          files
          |> GetFilesSHA1 verbose 
          |> Seq.ofArray 
          |> Seq.groupBy (fun (_,_,h,_) -> h) 
          
      /// Coerce a sequence of files using hard links.
      let private pDel verbose h msg = if verbose then printfn "Delete error %s\n%s" h msg
      let private pHL verbose h msg = if verbose then printfn "Hard link error %s\n%s" h msg
      let rec CoerceFilesIntoHardLinks verbose (files : seq<string>) = 
          if files |> Seq.isEmpty then ()
          else 
  