anchor.diff:          | SynExpr.TryWith (range=m)
           | SynExpr.TryFinally (range=m)
           | SynExpr.ArbitraryAfterError (range=m)
  -        | SynExpr.FromParseError (range=m) 
  -        | SynExpr.DiscardAfterMissingQualificationAfterDot (range=m) 
  +        | SynExpr.FromParseError (range=m)
  +        | SynExpr.DiscardAfterMissingQualificationAfterDot (range=m)
           | SynExpr.IfThenElse (range=m)
           | SynExpr.LongIdent (range=m)
           | SynExpr.LongIdentSet (range=m)
  
positive.code:     /// F# syntax: { expr }
      | CompExpr of isArrayOrList:bool * isNotNakedRefCell:bool ref * expr:SynExpr * range:range
  
      /// First bool indicates if lambda originates from a method. Patterns here are always "simple" 
      /// Second bool indicates if this is a "later" part of an iterated sequence of lambdas
      ///
      /// F# syntax: fun pat -> expr
      | Lambda of  fromMethod:bool * inLambdaSeq:bool * args:SynSimplePats * body:SynExpr * range:range 
  
      /// F# syntax: function pat1 -> expr | ... | patN -> exprN
      | MatchLambda of bool * range * clauses:SynMatchClause list * spBind:SequencePointInfoForBinding * range:range
  
negative.code:     | StructTuple of  SynExpr list * range list * range:range  // "range list" is for interstitial commas, these only matter for parsing/design-time tooling, the typechecker may munge/discard them
  
      /// F# syntax: [ e1; ...; en ], [| e1; ...; en |]
      | ArrayOrList of  isList:bool * exprs:SynExpr list * range:range
  
      /// F# syntax: { f1=e1; ...; fn=en }
      /// SynExpr.Record((baseType, baseCtorArgs, mBaseCtor, sepAfterBase, mInherits), (copyExpr, sepAfterCopyExpr), (recordFieldName, fieldValue, sepAfterField), mWholeExpr)
      /// inherit includes location of separator (for tooling)
      /// copyOpt contains range of the following WITH part (for tooling)
      /// every field includes range of separator after the field (for tooling)
      | Record of baseInfo:(SynType * SynExpr * range * BlockSeparator option * range) option * copyInfo:(SynExpr * BlockSeparator) option * recordFields:(RecordFieldName * (SynExpr option) * BlockSeparator option) list * range:range
  
      /// F# syntax: new C(...)
      /// The flag is true if known to be 'family' ('protected') scope
      | New of isProtected:bool * typeName:SynType * expr:SynExpr * range:range
  
      /// SynExpr.ObjExpr(objTy,argOpt,binds,extraImpls,mNewExpr,mWholeExpr)
      ///
  