anchor.diff:      let junitStyle watch =
         { new IFormatter<ResultNode seq> with
           member __.Format(results: ResultNode seq) =
  -          let xdocument = XDocument(XElement(xname "testsuites", results |> Seq.map toXDocument) |> addSummary watch results)
  +          let xdocument = XDocument(XElement(xname "testsuites", results |> Seq.collect toXElements) |> addSummary watch results)
             Writable.xdocument(xdocument)
         }
  
positive.code: 
    module XmlFormatter =
  
      open System.Xml
      open System.Xml.Linq
      open SummaryFormatter
  
      let private xname name = XName.Get(name)
  
      let timeSpanToStr (span: TimeSpan) = sprintf "%.3f" span.TotalSeconds
  
      let private toXDocument result =
        let rec inner (acc: XElement) = function
        | EndMarker -> acc
        | ContextResult contextResult ->
          let name =
            match acc.Attribute(xname "name") with
            | null -> contextResult.Context.DisplayName
            | x ->
              x.Remove()
              sprintf "%s.%s" x.Value contextResult.Context.DisplayName
          let nameAttr = XAttribute(xname "name", name)
          acc.Add(nameAttr)
          contextResult.Results |> Seq.fold inner acc
        | TestResult tr ->
          let testCase =
            XElement(
  
negative.code:               XAttribute(xname "time", timeSpanToStr duration))
          acc.Add(testCase)
          acc
        let results = ResizeArray<XElement * Summary>()
        inner results (element ()) result
        |> summary results result
        |> results.Add
        results
        |> Seq.choose (fun (x, _) ->
          if Seq.isEmpty <| x.Elements() then None
          else Some x
        )
  
      let addSummary (watch: Stopwatch) results (suites: XElement) =
        let summary = results |> Seq.fold Summary.collectSummary { Summary.empty with Duration = watch.Elapsed }
  