anchor.diff:            Excludes = [assemblyInfo] }
           |> WatchChanges (fun changes ->
               tracefn "%A" changes
  -            Run "Run")
  +            // TODO: restore target running so as not to duplicate the dependency chain. https://github.com/fsharp/FAKE/issues/791
  +            //Run "Run"
  +            createAssemblyInfo()
  +            compile()
  +            run())
   
       // TODO: This appears to block.
       System.Console.ReadLine() |> ignore
  
positive.code:     |> List.ofArray
      |> (fun xs -> assemblyInfo::xs)
  
  Target "AssemblyInfo" <| fun _ ->
      CreateFSharpAssemblyInfo (defaultBaseDir + assemblyInfo)
          [Attribute.Title "Reload Demo"
           Attribute.Description "Demonstration of compiling and watching F# tools with FAKE"
           Attribute.Version version
           Attribute.FileVersion version]
  
  Target "Compile" <| fun _ ->
      // NOTE: file order matters, so this must be explicit.
      // TODO: allow an environVar to specify the file list.
      files
  
negative.code:                 Output = output
                  References = ["packages/FSharp.Core/lib/net40/FSharp.Core.dll"] })
  
  let run() =
      Shell.Exec output |> ignore
  
  Target "AssemblyInfo" createAssemblyInfo
  Target "Compile" compile
  Target "Run" run
  
  Target "Watch" <| fun _ ->
      use watcher =
  