anchor.diff:      ///     activePatIdentity -- The value and the types it is applied to. If there are any active pattern parameters then this is empty. 
       ///     idx -- The case number of the active pattern which the test relates to.
       ///     activePatternInfo -- The extracted info for the active pattern.
  -    | ActivePatternCase of Expr * TTypes * (ValRef * TypeInst) option * int * ActivePatternInfo
  +    | ActivePatternCase of
  +        activePatExpr: Expr *        
  +        activePatResTys: TTypes *
  +        activePatIdentity: (ValRef * TypeInst) option *
  +        idx: int *
  +        activePatternInfo: ActivePatternInfo
   
       /// Used in error recovery
  -    | Error of range
  +    | Error of range: range
   
       // %+A formatting is used, so this is not needed
       //[<DebuggerBrowsable(DebuggerBrowsableState.Never)>]
  
positive.code:     ///    ty -- the type and its instantiation
      ///    vref -- the method that solves the trait constraint
      ///    minst -- the generic method instantiation 
      | FSMethSln of ty: TType * vref: ValRef * minsts: TypeInst 
  
      /// FSRecdFieldSln(tinst, rfref, isSetProp)
      ///
  
negative.code: /// Represents a test and a subsequent decision tree
  [<NoEquality; NoComparison; StructuredFormatDisplay("{DebugText}")>]
  type DecisionTreeCase = 
      | TCase of discriminator: DecisionTreeTest * caseTree: DecisionTree
  
      /// Get the discriminator associated with the case
      member x.Discriminator = let (TCase(d, _)) = x in d
  