anchor.diff:  /// Gets the FAKE version no.
   let fakeVersion = AssemblyVersionInformation.Version
   
  -let mutable private openTags = []
  +let private openTags = new ThreadLocal<list<string>>(fun _ -> [])
   
   /// Logs the specified string        
   let log message = LogMessage(message, true) |> postMessage
  
positive.code: open System
  open System.IO
  open System.Reflection
  
  /// Gets the path of the current FAKE instance
  let fakePath = productName.GetType().Assembly.Location
  
negative.code: let traceEndBuild() = postMessage FinishedMessage
  
  /// Puts an opening tag on the internal tag stack
  let openTag tag = openTags.Value <- tag :: openTags.Value
  
  /// Removes an opening tag from the internal tag stack
  let closeTag tag = 
      match openTags.Value with
      | x :: rest when x = tag -> openTags.Value <- rest
      | _ -> failwithf "Invalid tag structure. Trying to close %s tag but stack is %A" tag openTags
      CloseTag tag |> postMessage
  
  let closeAllOpenTags() = Seq.iter closeTag openTags.Value
  
  /// Traces the begin of a target
  let traceStartTarget name description dependencyString = 
  