anchor.diff:                  | true, false, 2 -> 
                           // If we resolve to an instance field on a struct and we haven't yet taken 
                           // the address of the object then go do that 
  -                        if rfref.Tycon.IsStructOrEnumTycon  && not (isByrefTy g (tyOfExpr g argExprs.[0])) then 
  +                        if rfref.Tycon.IsStructOrEnumTycon && not (isByrefTy g (tyOfExpr g argExprs.[0])) then 
                               let h = List.head argExprs
                               let wrap,h' = mkExprAddrOfExpr g true false DefinitelyMutates h None m 
                               Some (wrap (mkRecdFieldSetViaExprAddr (h', rfref, tinst, argExprs.[1], m)))
  
positive.code: // Predicates on types
  //------------------------------------------------------------------------- 
  
  let rec isNativeIntegerTy  g ty =
      typeEquivAux EraseMeasures g g.nativeint_ty ty || 
      typeEquivAux EraseMeasures g g.unativeint_ty ty ||
      (isEnumTy g ty && isNativeIntegerTy g (underlyingTypeOfEnumTy g ty))
  
  let isSignedIntegerTy  g ty =
      typeEquivAux EraseMeasures g g.sbyte_ty ty || 
      typeEquivAux EraseMeasures g g.int16_ty ty || 
      typeEquivAux EraseMeasures g g.int32_ty ty || 
      typeEquivAux EraseMeasures g g.nativeint_ty ty || 
      typeEquivAux EraseMeasures g g.int64_ty ty 
  
  let isUnsignedIntegerTy  g ty =
      typeEquivAux EraseMeasures g g.byte_ty ty || 
      typeEquivAux EraseMeasures g g.uint16_ty ty || 
      typeEquivAux EraseMeasures g g.uint32_ty ty || 
  
negative.code: 
      match sty1, sty2 with 
      // type vars inside forall-types may be alpha-equivalent 
      | TType_var tp1, TType_var tp2 when typarEq tp1 tp2 || (aenv.EquivTypars.ContainsKey tp1 && typeEquiv g aenv.EquivTypars.[tp1] ty2) -> CompleteD
  
      | TType_var tp1, TType_var tp2 when PreferUnifyTypar tp1 tp2 -> SolveTyparEqualsTyp csenv ndeep m2 trace sty1 ty2
      | TType_var tp1, TType_var tp2 when not csenv.MatchingOnly && PreferUnifyTypar tp2 tp1 -> SolveTyparEqualsTyp csenv ndeep m2 trace sty2 ty1
  
      | TType_var r, _ when (r.Rigidity <> TyparRigidity.Rigid) -> SolveTyparEqualsTyp csenv ndeep m2 trace sty1 ty2
      | _, TType_var r when (r.Rigidity <> TyparRigidity.Rigid) && not csenv.MatchingOnly -> SolveTyparEqualsTyp csenv ndeep m2 trace sty2 ty1
  