anchor.diff:      type private CommentList = 
           { Lines: ResizeArray<LineNum * LineStr>
             Type: CommentType }
  -        static member New ty = { Type = ty; Lines = ResizeArray() }
  +        static member New ty lineStr = 
  +            { Type = ty; Lines = ResizeArray [| lineStr |] }
   
       let private (|Comment|_|) line =
           match line with
  
positive.code:     let getCommentRanges (lines: string[]) =
          let comments: CommentList list =
              lines
              |> Array.foldi (fun ((lastLineNum, currentComment: CommentList option, comments) as state) lineNum lineStr ->
                  match lineStr.TrimStart(), currentComment with
                  | Comment commentType, Some comment ->
                      if comment.Type = commentType && lineNum = lastLineNum + 1 then
                          comment.Lines.Add (lineNum, lineStr)
                          lineNum, currentComment, comments
                      else lineNum, Some (CommentList.New commentType), comment :: comments
                  | Comment commentType, None -> 
                      lineNum, Some (CommentList.New commentType), comments
                  | _, Some comment -> 
                      lineNum, None, comment :: comments
                  | _ -> state) 
                 (-1, None, [])
              |> fun (_, lastComment, comments) -> 
  
negative.code:                 |> List.rev
  
          comments
          |> List.filter (fun comment -> comment.Lines.Count > 1)
          |> List.map (fun comment ->
              let lines = comment.Lines
              let startLine, startStr = lines.[0]
              let endLine, endStr = lines.[lines.Count - 1]
              let startCol = startStr.IndexOf '/'
              let endCol = endStr.TrimEnd().Length
  
  