anchor.diff:              |> List.reduce Range.unionRanges
   
   
  -    /// Scope indicates the way a range/snapshot should be collapsed. |Scope.Scope.Same| is for a scope inside
  -    /// some kind of scope delimiter, e.g. `[| ... |]`, `[ ... ]`, `{ ... }`, etc.  |Scope.Below| is for expressions
  +    /// 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
  
positive.code: 
              let scopeType =
                  match comment.Type with
                  | Regular -> Scope.Comment
                  | XmlDoc -> Scope.XmlDocComment
  
              let range = Range.mkRange "" (Range.mkPos (startLine + 1) startCol) (Range.mkPos (endLine + 1) endCol)
  
negative.code:         | [] -> Range.range0
          | head::_ -> Range.startToEnd head.idRange (List.last longId).idRange
  
      /// Caclulate the range of the provided type arguments (<'a,...,'z>) 
      /// or return the range `other` when `typeArgs` = []
      let rangeOfTypeArgsElse other (typeArgs:SynTyparDecl list) =
          match typeArgs with
          | [] -> other
  