anchor.diff:    | SVGAttr.Y v -> objAttr "y" v
     | SVGAttr.Custom (key, value) -> objAttr (slugKey key) value
   
  -let private renderAttrs (attrs: IProp seq) tag =
  -  let html = StringBuilder()
  +let private renderAttrs (append:string -> unit) (attrs: IProp seq) tag =
     let mutable childHtml = None
     for attr in attrs do
       match attr with
  
positive.code:           for child in children do
              render (castHTMLNode child)
  
          append "</"; append tag; append ">"
      | HTMLNode.List nodes ->
          for node in nodes do
            render node
  
negative.code:       | "textarea", DefaultValue v ->
            childHtml <- Some v
        | _, _ ->
          append(renderHtmlAttr attr)
          append(" ") |> ignore
      | :? SVGAttr as attr ->
        append(renderSVGAttr attr) 
        append(" ")
      | _ -> ()
  
    childHtml
  
  
  let rec private addReactMark htmlNode =
  