anchor.diff:  
       ownerType 
   
  -and createDirectoryNode typeSet (dir: DirectoryInfo) propertyName withParent relative ctx =
  -    annotateDirectoryNode (ProvidedTypeDefinition(propertyName, Some typeof<obj>)) dir propertyName withParent relative ctx
  +and createDirectoryNode typeSet (dir: DirectoryInfo) propertyName withParent relative watch ctx =
  +    annotateDirectoryNode (ProvidedTypeDefinition(propertyName, Some typeof<obj>)) dir propertyName withParent relative watch ctx
   
  -let createRootType typeName (dir: DirectoryInfo) withParent relative ctx =
  -    annotateDirectoryNode (erasedType<obj> thisAssembly rootNamespace typeName) dir dir.FullName withParent relative ctx ()
  +let createRootType typeName (dir: DirectoryInfo) withParent relative watch ctx =
  +    annotateDirectoryNode (erasedType<obj> thisAssembly rootNamespace typeName) dir dir.FullName withParent relative watch ctx ()
       
   let createRelativePathSystem (resolutionFolder: string) ctx =
       let relativeFileSystem = erasedType<obj> thisAssembly rootNamespace "RelativePath"
   
       relativeFileSystem.DefineStaticParameters(
  -        parameters = [ ProvidedStaticParameter("relativeTo", typeof<string>)], 
  +        parameters = 
  +            [ ProvidedStaticParameter("relativeTo", typeof<string>)
  +              ProvidedStaticParameter("watch", typeof<bool>, false) ], 
           instantiationFunction = (fun typeName parameterValues ->
               match parameterValues with
  -            | [| :? string as relativePath |] ->                 
  +            | [| :? string as relativePath; :? bool as watch |] ->                 
                   let folder = 
                       match relativePath with
                       | "" | "." -> Path.GetFullPath(resolutionFolder)
                       | _ -> Path.GetFullPath(Path.Combine(resolutionFolder, relativePath))
                   match Directory.Exists(folder) with
                   | false -> failwith (sprintf "Specified directory [%s] could not be found" folder)
  -                | true -> createRootType typeName (new DirectoryInfo(folder)) true (Some folder) ctx
  +                | true -> createRootType typeName (new DirectoryInfo(folder)) true (Some folder) watch ctx
               | _ -> failwith "Wrong static parameters to type provider"))
               
       relativeFileSystem
  
positive.code:                 match relative with
                  | Some sourcePath -> Some((fixDirectoryPath sourcePath) + "..\\")
                  | None -> None
              ownerType.AddMemberDelayed (createDirectoryNode typeSet dir.Parent ".." withParent relative ctx)
          with
          | exn -> ()
  
  
negative.code:     with
      | exn -> ()
  
  let rec annotateDirectoryNode (ownerType: ProvidedTypeDefinition) (dir: DirectoryInfo) propertyName withParent relative watch ctx () =
      if watch then
          watchDir dir.FullName ctx
  
      ownerType.HideObjectMethods <- true
      ownerType.AddXmlDoc(sprintf "A strongly typed interface to '%s'" dir.FullName)
  
  