anchor.diff:  open IntelliFactory.WebSharper.UI.Next
   
   open IntelliFactory.WebSharper.UI.Next.Templating.ProvidedTypes
  +
  +module public Inlines =
  +    [<Inline "$func($arg)">]
  +    let InvokeFunc (func: 'a -> 'b) (arg: 'a) = X<'b>
  +
  +    [<Inline "$func($arg1)($arg2)">]
  +    let InvokeFunc2 (func: 'a -> 'b -> 'c) (arg1: 'a) (arg2: 'b) = X<'c>
  +
  +    [<Inline "$func($arg)($arg2)($arg3)">]
  +    let InvokeFunc3 (func: 'a -> 'b -> 'c -> 'd) (arg1: 'a) (arg2: 'b) (arg3: 'c) = X<'d>
  +
  +open Inlines
   
   [<AutoOpen>]
   module internal Utils =
  
positive.code:                                     | a -> <@ [| %(getDocVar a.Value) |] @>  
  
                                  if isRoot then 
                                      <@ Doc.Concat %nodes @>
                                  else
                                      let attrs =
                                          e.Attributes() 
                                          |> Seq.filter (fun a -> a.Name <> dataHole) 
                                          |> Seq.map (fun a -> <@ Attr.Create a.Name.LocalName a.Value @>)
                                          |> ExprArray
                                      <@ Doc.Element name %attrs %nodes @>
  
                              | a -> getDocVar a.Value
                          
  
negative.code:                                                     |> Seq.map (fun m -> m.Groups.[1].Value, m.Index)
                                                      |> List.ofSeq
                                                  if List.isEmpty holes then
                                                      [ <@ InvokeFunc Doc.TextNode t @> ]
                                                  else
                                                      [
                                                          let l = ref 0
                                                          for name, i in holes do
                                                              if i > !l then
                                                                  let s = t.[!l .. i - 1]
                                                                  yield <@ InvokeFunc Doc.TextNode s @> 
                                                                  l := i + name.Length + 3
                                                              yield <@ InvokeFunc Doc.TextView %(getTextVar name) @>
                                                          if t.Length > !l then
                                                              let s = t.[!l ..]
                                                              yield <@ InvokeFunc Doc.TextNode s @> 
                                                      ]   
                                              | _ -> []
                                          ) 
  