anchor.diff:      | HTMLNode.Text str -> html.Append(escapeHtml str)
       | HTMLNode.RawText str -> html.Append(str)
       | HTMLNode.Node (tag, attrs, children) ->
  -      let attrs, child = renderAttrs attrs tag
  -
  -      let attrs = if attrs = "" then attrs else " " + attrs
  +      append "<"
  +      append tag
  +
  +      let child = renderAttrs append attrs tag
  +
         if voidTags.Contains tag then 
  -        append "<"; append tag; append attrs; append "/>"
  +        append "/>"
         else 
  -        append "<"; append tag; append attrs; append ">"; 
  +        append ">"
           
           match child with
           | Some c -> append c
  
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:   | SVGAttr.Y v -> objAttr "y" v
    | SVGAttr.Custom (key, value) -> objAttr (slugKey key) value
  
  let private renderAttrs (append:string -> unit) (attrs: IProp seq) tag =
    let mutable childHtml = None
    for attr in attrs do
      match attr with
  