anchor.diff:              | Comment               -> "Comment"
               | XmlDocComment         -> "XmlDocComment"
   
  +    /// Stores the range for a construct, the sub-range that should be collapsed for outlinging,
  +    /// a tag for the construct type, and a tag for the collapse style
       [<NoComparison>]
       type ScopeRange = {
           Scope: Scope
  
positive.code: 
      type private LineNum = int
      type private LineStr = string
      type private CommentType = Regular | XmlDoc
  
      [<NoComparison>]
      type private CommentList =
  
negative.code:             |> List.reduce Range.unionRanges
  
  
      /// Collapse indicates the way a range/snapshot should be collapsed. `Same` is for a scope inside
      /// some kind of scope delimiter, e.g. `[| ... |]`, `[ ... ]`, `{ ... }`, etc.  `Below` is for expressions
      /// following a binding or the right hand side of a pattern, e.g. `let x = ...`
      type Collapse =
          | Below
          | Same
  
      /// Tag to identify the constuct that can be stored alongside its associated ranges
      type Scope =
          | Open
          | Namespace
  