anchor.diff:                      | SynExpr.ArbitraryAfterError(_,_) -> None
                       | SynExpr.LongIdent(_,LongIdentWithDots(is,_),_,__) -> Some (List.map AstNode.Ident is)
                       | SynExpr.Lambda(_,_,p,e,_) -> Some([AstNode.Expression e;AstNode.SimplePatterns p])
  +                    | SynExpr.Sequential(_,_,e1,e2,_)
                       | SynExpr.IfThenElse(e1,e2,None,_,_,_,_) -> Some([AstNode.Expression e1; AstNode.Expression e2])
                       | SynExpr.IfThenElse(e1,e2,Some(e3),_,_,_,_) -> Some([AstNode.Expression e1; AstNode
   .Expression e2; AstNode.Expression e3])
  
positive.code:         let options source = checker.GetCheckOptionsFromScriptRoot(filename, source, DateTime.Now, [| |])
          checker.UntypedParse(filename, source, options source).ParseTree
          
      let Parse source = MakeAstNode (getParseTree source)
  
      // Active patterns to make dealing with the syntax tree more convenient
      let (|ModuleOrNamespaceChildren|_|) (expression : SynModuleOrNamespace) =
  
negative.code:                     | SynExpr.YieldOrReturn(_,e,_)
                      | SynExpr.Paren(e,_,_,_)
                      | SynExpr.ArrayOrListOfSeqExpr(_,e,_)
                      | SynExpr.New(_,_,e,_)
                      | SynExpr.DotGet(e,_,_,_)
                      | SynExpr.CompExpr(_,_,e,_) -> Some([AstNode.Expression e])
                      | SynExpr.ArrayOrList(_,es,_)
                      | SynExpr.Tuple(es,_,_) -> Some(List.map AstNode.Expression es)
  