anchor.diff:          | SynExpr.DotNamedIndexedPropertySet(e1, ident, e2, e3, _) -> 
               addLongIdentWithDots ident
               List.iter walkExpr [e1; e2; e3]
  -        | SynExpr.TypeTest(e, t, _) -> 
  -            walkExpr e
  -            walkType t
  -        | SynExpr.Upcast(e, t, _) -> 
  -            walkExpr e
  -            walkType t
  -        | SynExpr.Downcast(e, t, _) -> 
  -            walkExpr e
  -            walkType t
  -        | SynExpr.InferredUpcast(e, _) -> walkExpr e
  -        | SynExpr.InferredDowncast(e, _) -> walkExpr e
  -        | SynExpr.AddressOf(_, e, _, _) -> walkExpr e
           | SynExpr.JoinIn(e1, _, e2, _) -> List.iter walkExpr [e1; e2]
  -        | SynExpr.YieldOrReturn(_, e, _) -> walkExpr e
  -        | SynExpr.YieldOrReturnFrom(_, e, _) -> walkExpr e
           | SynExpr.LetOrUseBang(_, _, _, pat, e1, e2, _) -> 
               walkPat pat
               List.iter walkExpr [e1; e2]
  -        | SynExpr.DoBang(e, _) -> walkExpr e
           | SynExpr.TraitCall (ts, sign, e, _) ->
               List.iter walkTypar ts 
               walkMemberSig sign
  
positive.code:         | SynIndexerArg.Two (e1, e2) -> List.iter walkExpr [e1; e2]
  
      and walkType = function
          | SynType.LongIdent ident -> addLongIdentWithDots ident
          | SynType.App(ty, _, types, _, _, _, _) -> 
              walkType ty
              List.iter walkType types
          | SynType.LongIdentApp(_, _, _, types, _, _, _) -> List.iter walkType types
          | SynType.Tuple(ts, _) -> ts |> List.iter (fun (_, t) -> walkType t)
          | SynType.Array(_, t, _) -> walkType t
          | SynType.Fun(t1, t2, _) -> 
              walkType t1
              walkType t2
          | SynType.WithGlobalConstraints(t, typeConstraints, _) -> 
              walkType t
              List.iter walkTypeConstraint typeConstraints
          | SynType.HashConstraint(t, _) -> walkType t
          | SynType.MeasureDivide(t1, t2, _) -> 
              walkType t1
              walkType t2
          | SynType.MeasurePower(t, _, _) -> walkType t
          | _ -> ()
  
      and walkClause (Clause(pat, e1, e2, _, _)) =
  
negative.code:     let visitType ty =
          let (SynTypeDefn.TypeDefn (_, repr, defns, _)) = ty
          match repr with
          | SynTypeDefnRepr.ObjectModel (_, objDefns, _) ->
              for d in objDefns do visitMember d
          | _ -> ()
          for d in defns do visitMember d
  
      let rec visitDeclarations decls = 
          decls |> List.iter
             (function
              | SynModuleDecl.Let (_, bindings, _) -> visitBindindgs bindings
              | SynModuleDecl.DoExpr (_, expr, _) -> visitExpr expr
              | SynModuleDecl.Types (types, _) -> List.iter visitType types
              | SynModuleDecl.NestedModule (_, decls, _, _) -> visitDeclarations decls
              | _ -> () )
  
      let visitModulesAndNamespaces modulesOrNss =
          modulesOrNss
          |> Seq.iter (fun (SynModuleOrNamespace(_, _, decls, _, _, _, _)) -> visitDeclarations decls) 
      ast 
      |> Option.iter (function
          | ParsedInput.ImplFile (ParsedImplFileInput(_, _, _, _, _, modules, _)) -> visitModulesAndNamespaces modules
          | _ -> ())
      quotationRanges
     
  