anchor.diff:    let typeString = assoc_right_opt type_ types
     let id = solution_component.Attributes.["objectid"] :?> Guid
     match typeString with
  -    | Some "Workflow" when List.contains id workflows -> printfn " Skipping 'fake' workflow"
  +  // Remark, what does fake workflow mean?
  +    | Some "Workflow" when not (List.contains id workflows) -> printfn " Skipping 'fake' workflow"
       | _ ->
         match typeString with
           | None -> printfn "Adding thing (%i) to solution" type_
  
positive.code:   let zip = resp.ExportSolutionFile
    File.WriteAllBytes(file_prefix + sol_name + ".zip", zip);
    file_prefix + sol_name
  
  let rec download_with_retry (proxy: IOrganizationService) file_location sol_name minutes retry_count =
    if retry_count > 0 then
      try
        download proxy file_location sol_name minutes
      with _ ->
        download_with_retry proxy file_location sol_name minutes retry_count
    else
      download proxy file_location sol_name minutes
  
  let unzip file =
    printfn "Unpacking zip '%s' to '%s'" (file + ".zip") file;
  
negative.code:       let proxy = env.connect().GetProxy()
        Directory.CreateDirectory(file_location + "/" + env.name) |> ignore;
        printfn "Exporting solution '%s' from %s" complete_solution_name env.name;
        let sol = download_with_retry env (file_location + "/" + env.name + "/") complete_solution_name 15 1
        unzip sol;
        (proxy, sol))
      |> function [| dev_sol; prod_sol |] -> (dev_sol, prod_sol) | _ -> failwith "Impossible"
  