anchor.diff:                                                  getParts n.Value
                                                   |> List.map (function
                                                       | TextPart t -> <@ Doc.TextNode t @>
  -                                                    | TextHole h -> <@ Doc.TextView %h @>
  +                                                    | TextHole h -> <@ Doc.TextView %(getVar h) @>
                                                   )
                                               | _ -> []
                                           ) 
                                           |> ExprArray
  -                                    | a -> <@ [| %(getDocVar a.Value) |] @>  
  +                                    | a -> <@ [| %(getVar a.Value) |] @>  
   
                                   if isRoot then 
                                       <@ Doc.Concat %nodes @>
  
positive.code:     let templateTy = ProvidedTypeDefinition(thisAssembly, rootNamespace, "Template", None)
  
      let mutable watcher: FileSystemWatcher = null
  
      let objTy = typeof<obj>
      let docTy = typeof<Doc>
      let attrTy = typeof<Attr>
      let textTy = typeof<View<string>>
      let stringVarTy = typeof<Var<string>>
      let callbackTy = typeof<WebSharper.JavaScript.Dom.Event -> unit>
  
      let textHoleRegex = Regex @"\$\{([^\}]+)\}" 
      let dataHole = xn"data-hole"
  
negative.code:                             let varMap = Seq.zip vars holes |> Map.ofSeq
                              mainExpr.Substitute(fun v -> varMap |> Map.tryFind v)
                          
                          ProvidedMethod("Doc", pars, typeof<Doc>, IsStaticMethod = true, InvokeCode = code)
                          |> toTy.AddMember
  
                      for name, e in innerTemplates do
  