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:     | HTMLNode.Text str -> html.Append(escapeHtml str)
      | HTMLNode.RawText str -> html.Append(str)
      | HTMLNode.Node (tag, attrs, children) ->
        append "<"
        append tag
  
        let child = renderAttrs append attrs tag
  
        if voidTags.Contains tag then 
          append "/>"
        else 
          append ">"
          
          match child with
          | Some c -> append c
  