anchor.diff:          | SynExpr.ArrayOrListOfSeqExpr (_, expr, _) 
           | SynExpr.CompExpr (_, _, expr, _) 
           | SynExpr.Lambda (_, _, _, expr, _) 
  -        | SynExpr.ForEach (_, _, _, _, _,expr(*body*), _) 
           | SynExpr.YieldOrReturn (_, expr, _) 
           | SynExpr.YieldOrReturnFrom (_, expr, _) 
           | SynExpr.New(_, _, expr, _) 
  
positive.code:         | SynExpr.InferredUpcast(expr, _)
          | SynExpr.InferredDowncast(expr, _)
          | SynExpr.LongIdentSet (_, expr, _) 
          | SynExpr.DotGet(expr, _, _, _) -> 
              visitExpr expr
          | SynExpr.App (_,_, expr1(*funcExpr*), expr2(*argExpr*), _) 
          | SynExpr.TryFinally(expr1, expr2, _, _, _) 
          | SynExpr.NamedIndexedPropertySet(_, expr1, expr2, _) 
  
negative.code:             | SynExpr.InferredUpcast(e,_)
              | SynExpr.DotGet(e,_,_,_)
              | SynExpr.DotSet(e,_,_,_)
              | SynExpr.Do (e,_)
              | SynExpr.New (_,_,e,_)
              | SynExpr.Typed(e,_,_)
              | SynExpr.DotIndexedGet(e,_,_,_)
              | SynExpr.DotIndexedSet(e,_,_,_,_,_) -> yield! visitExpr e       
              | SynExpr.YieldOrReturn (_,e,r)
              | SynExpr.DoBang (e,r)
              | SynExpr.LetOrUseBang (_,_,_,_,_,e,r)
  