anchor.diff:              | File(ParsedImplFileInput(_,_,_,_,_,ns,_)) -> Some(List.map AstNode.ModuleOrNamespace ns)
               | Pattern(p) ->
                   match p with
  +                    | SynPat.Or(p1,p2,_) -> Some [Pattern p1; Pattern p2]
                       | SynPat.Named(p2,_,_,_,_) -> Some [Pattern(p2)]
                       | SynPat.Wild(_) -> None
                       | SynPat.LongIdent(LongIdentWithDots(is,_),_,_,ps,_,_) -> Some(List.append (List.map AstNode.Ident is) (List.map AstNode.Pattern ps))
  
positive.code:                     | SynExpr.YieldOrReturn(_,e,_)
                      | SynExpr.Paren(e,_,_,_)
                      | SynExpr.ArrayOrListOfSeqExpr(_,e,_)
                      | SynExpr.CompExpr(_,_,e,_) -> Some([AstNode.Expression e])
                      | SynExpr.ArrayOrList(_,es,_)
                      | SynExpr.Tuple(es,_,_) -> Some(List.map AstNode.Expression es)
  
negative.code:             | Expression e -> Some(e.Range)
              | Ident i -> Some(i.idRange)
              | MatchClause c -> Some(c.Range)
              | SimplePatterns ps ->
                  let SynSimplePats.SimplePats(_,r) | SynSimplePats.Typed(_,_,r) = ps
                  Some r
              | SimplePattern p ->
                  let SynSimplePat.Id(_,_,_,_,_,r) | SynSimplePat.Typed(_,_,r) | SynSimplePat.Attrib(_,_,r) = p
                  Some r
              | _ -> raise (new NotImplementedException("Add a new entry to the active pattern for Range:" + (string node)))
  
      // Utility functions to avoid having to match patterns to get children or range
  