anchor.diff:  type TyparConstraint = 
   
       /// A constraint that a type is a subtype of the given type 
  -    | CoercesTo of TType * range
  +    | CoercesTo of ty: TType * range: range
   
       /// A constraint for a default value for an inference type variable should it be neither generalized nor solved 
  -    | DefaultsTo of int * TType * range 
  +    | DefaultsTo of priority: int * ty: TType * range: range 
       
       /// A constraint that a type has a 'null' value 
  -    | SupportsNull of range 
  +    | SupportsNull of range: range 
       
       /// A constraint that a type has a member with the given signature 
  -    | MayResolveMember of TraitConstraintInfo * range
  +    | MayResolveMember of constraintInfo: TraitConstraintInfo * range: range
       
       /// A constraint that a type is a non-Nullable value type 
       /// These are part of .NET's model of generic constraints, and in order to 
       /// generate verifiable code we must attach them to F# generalized type variables as well. 
  -    | IsNonNullableStruct of range 
  +    | IsNonNullableStruct of range: range 
       
       /// A constraint that a type is a reference type 
  -    | IsReferenceType of range 
  +    | IsReferenceType of range: range 
   
       /// A constraint that a type is a simple choice between one of the given ground types. Only arises from 'printf' format strings. See format.fs 
  -    | SimpleChoice of TTypes * range 
  +    | SimpleChoice of tys: TTypes * range: range 
   
       /// A constraint that a type has a parameterless constructor 
  -    | RequiresDefaultConstructor of range 
  +    | RequiresDefaultConstructor of range: range 
   
       /// A constraint that a type is an enum with the given underlying 
  -    | IsEnum of TType * range 
  +    | IsEnum of ty: TType * range: range 
       
       /// A constraint that a type implements IComparable, with special rules for some known structural container types
  -    | SupportsComparison of range 
  +    | SupportsComparison of range: range 
       
       /// A constraint that a type does not have the Equality(false) attribute, or is not a structural type with this attribute, with special rules for some known structural container types
  -    | SupportsEquality of range 
  +    | SupportsEquality of range: range 
       
       /// A constraint that a type is a delegate from the given tuple of args to the given return type
  -    | IsDelegate of TType * TType * range 
  +    | IsDelegate of aty: TType * bty: TType * range: range 
       
       /// A constraint that a type is .NET unmanaged type
  -    | IsUnmanaged of range
  +    | IsUnmanaged of range: range
   
       // %+A formatting is used, so this is not needed
       //[<DebuggerBrowsable(DebuggerBrowsableState.Never)>]
  
positive.code: 
  
  
  exception UndefinedName of int * (string -> string) * Ident * ErrorLogger.Suggestions
  
  exception InternalUndefinedItemRef of (string * string * string -> int * string) * string * string * string
  
  
negative.code:     ///    extOpt -- information about an extension member, if any
      ///    ilMethodRef -- the method that solves the trait constraint
      ///    minst -- the generic method instantiation 
      | ILMethSln of ty: TType * extOpt: ILTypeRef option * ilMethodRef: ILMethodRef * minst: TypeInst    
  
      /// ClosedExprSln expr
      ///
      /// Indicates a trait is solved by an erased provided expression
      | ClosedExprSln of expr: Expr 
  
      /// Indicates a trait is solved by a 'fake' instance of an operator, like '+' on integers
      | BuiltInSln
  