anchor.diff:    // opens the web page in the default webbrowser 
     let solution' pathSource pathTarget log =
   
  +    // Check that the files exist
  +    [pathSource ; pathTarget]
  +    |> List.iter(fun path -> 
  +      match File.Exists path with
  +      | true -> ()
  +      | false -> failwith (sprintf "Could not find file %s" path))
  +
       let app' = solutionApp pathSource pathTarget log
   
       let port = 
  
positive.code:       ex -> log.WriteLine(LogLevel.Error,sprintf "%s" ex.Message )
      
    // unpack the solution to a defined folder
    let unpackSolution zip temp (log:ConsoleLogger.ConsoleLogger) = 
  
      let folderName = Guid.NewGuid().ToString()
  
  
negative.code:   // The output files 
    let diffs pathSource pathTarget (log:ConsoleLogger.ConsoleLogger) =
  
      let tmpSource = unpackSolution pathSource log
      let tmpTarget = unpackSolution pathTarget log
  
      let source = 
        Directory.EnumerateFiles(tmpSource, @"*.*",  SearchOption.AllDirectories)
        |> Seq.filter(fun f -> not (f.EndsWith(".data.xml")))
        |> Seq.sort
        |> Seq.map(fun f -> f.[f.IndexOf(tmpSource) + 1 + tmpSource.Length ..])
        |> Set.ofSeq
      let target = 
        Directory.EnumerateFiles(tmpTarget, @"*.*", SearchOption.AllDirectories)
        |> Seq.filter(fun f -> not (f.EndsWith(".data.xml")))
        |> Seq.sort
        |> Seq.map(fun f -> f.[f.IndexOf(tmpTarget) + 1 + tmpTarget.Length ..])
        |> Set.ofSeq
  
      let notTarget = source - target
  