anchor.diff:  
       do
           this.Disposing.Add <| fun _ ->
  -            if watcher <> null then watcher.Dispose()
  +            for watcher in watchers.Values do watcher.Dispose()
  +            watchers.Clear()
               cache.Dispose()
   
           templateTy.DefineStaticParameters(
  
positive.code:     let rootNamespace = "WebSharper.UI.Next.Templating"
      let templateTy = ctx.ProvidedTypeDefinition(thisAssembly, rootNamespace, "Template", None)
  
      let mutable watcher: FileSystemWatcher = null
  
      let textHoleRegex = Regex @"\$(!?)\{([^\}]+)\}" 
      let dataHole = xn"data-hole"
  
negative.code:                                 else cfg.ResolutionFolder +/ pathOrXml
  
                              if cfg.IsInvalidationSupported then
                                  if not (watchers.ContainsKey htmlFile) then
                                      let watcher =
                                          new FileSystemWatcher(Path.GetDirectoryName htmlFile, Path.GetFileName htmlFile, 
                                              NotifyFilter = (NotifyFilters.LastWrite ||| NotifyFilters.Security ||| NotifyFilters.FileName)
                                          )
                                      let inv _ =
                                          if watchers.Remove(htmlFile) then
                                              watcher.Dispose()
                                          this.Invalidate()
                                      watcher.Changed.Add inv
                                      watcher.Deleted.Add inv
                                      watcher.Renamed.Add inv
                                      watcher.Created.Add inv
                                      watcher.EnableRaisingEvents <- true
                                      watchers.Add(htmlFile, watcher)
  
                              parseXml (File.ReadAllText htmlFile) 
                          
  