anchor.diff:                  yield! collectOpens decls
                   yield! Seq.collect visitDeclaration decls
               | SynModuleDecl.DoExpr (_,e,_) ->
  -//                yield! rcheck Scope.Below decl.Range
  -                //yield! rcheck Scope.Below r 
                   yield! visitExpr e
               | _ -> ()
           }
  +
   
       let private visitModuleOrNamespace moduleOrNs =
           seq {
  
positive.code:                 let prefixLength = "#".Length + directive.Length + " ".Length
                  Some (Range.mkRange "" (Range.mkPos r.StartLine prefixLength) r.End)
              | _ -> None)
  
      let rec private visitDeclaration (decl: SynModuleDecl) = 
          seq {
  
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(
  