anchor.diff:      FinalTargets.Clear()
   
   let mutable CurrentTargetOrder = []
  +let mutable CurrentTarget = ""
   
   /// Returns a list with all target names.
   let getAllTargetsNames() = TargetDict |> Seq.map (fun t -> t.Key) |> Seq.toList
  
positive.code: /// <param name="total">The total runtime.</param>
  let WriteTaskTimeSummary total =
      traceHeader "Build Time Report"
      if ExecutedTargets.Count > 0 then
          let width =
              ExecutedTargetTimes
                |> Seq.map (fun (a,b) -> a.Length)
                |> Seq.max
                |> max 8
  
          let aligned (name:string) duration = tracefn "%s   %O" (name.PadRight width) duration
          let alignedError (name:string) duration = sprintf "%s   %O" (name.PadRight width) duration |> traceError
  
          aligned "Target" "Duration"
          aligned "------" "--------"
          ExecutedTargetTimes
            |> Seq.iter (fun (name,time) ->
                  let t = getTarget name
                  aligned t.Name time)
  
          aligned "Total:" total
          if errors = [] then aligned "Status:" "Ok"
          else
              alignedError "Status:" "Failure"
              WriteErrors()
      else
          traceError "No target was successfully completed"
  
      traceLine()
  
  
negative.code: 
      // Now make second pass, adding in soft depencencies if appropriate
      visit getAllDependencies fVisit targetName
      
  /// <summary>Writes a dependency graph.</summary>
  /// <param name="verbose">Whether to print verbose output or not.</param>
  /// <param name="target">The target for which the dependencies should be printed.</param>
  