anchor.diff:                  if isTrueSeq then
                       yield! visitExpr e2
               | SynExpr.ArrayOrListOfSeqExpr (isArray,e,r) ->
  -                let rStart = Range.mkPos r.StartLine (r.StartColumn+(if isArray then 2 else 1)) 
  -                let rEnd   = Range.mkPos r.EndLine   (r.EndColumn - (if isArray then 2 else 1)) 
  -                yield! rcheck Scope.Same <| mkFileIndexRange r.FileIndex rStart rEnd
  +                yield! rcheck Scope.Same <| rangeMod r (if isArray then 2 else 1) (if isArray then 2 else 1)
                   yield! visitExpr e
               | SynExpr.CompExpr (arrayOrList,_,e,r) ->
                   if arrayOrList then ()
  -                else                    
  -                    let cexprStart = Range.mkPos r.StartLine (r.StartColumn+1) // exclude the opening { on the cexpr from collapsing
  -                    let cexprEnd   = Range.mkPos r.EndLine   (r.EndColumn - 1) // exclude the closing } on the cexpr from collapsing
  -                    yield! rcheck Scope.Same <| mkFileIndexRange r.FileIndex cexprStart cexprEnd
  +                else  // exclude the opening { and closing } on the cexpr from collapsing
  +                    yield! rcheck Scope.Same <| rangeMod r 1 1
                   yield! visitExpr e
               | SynExpr.YieldOrReturn (_,e,r) ->
                   yield! rcheck Scope.Below r 
  
positive.code:             | _ -> ()
          }
  
      and private visitTypeDefn (TypeDefn (componentInfo,objectModel,members,range)) =
          seq {            
              yield! rcheck Scope.Below <| Range.endToEnd componentInfo.Range range
  
negative.code:                     loop rest res (r::currentBulk)
                  | r :: rest, _ -> loop rest (currentBulk::res) [r]
              loop input [] []
          
          let selectRanges (ranges: range list) =
              match ranges with
              | [] -> None
              | [r] when r.StartLine = r.EndLine -> None
              | [r] -> Some <| mkSrange Scope.Same (Range.mkRange "" r.Start r.End)
              | lastRange :: rest ->
                  let firstRange = Seq.last rest
                  Some <| mkSrange Scope.Same (Range.mkRange "" firstRange.Start lastRange.End)
  
          decls |> (List.choose predicate>>groupConsecutiveDecls>>List.choose selectRanges)
  
  
      let collectOpens = getConsecutiveModuleDecls (function SynModuleDecl.Open (_,r) -> Some r | _ -> None)
  
  
      let collectHashDirectives =
           getConsecutiveModuleDecls(
  