anchor.diff:  /// otherwise, false.
   /// </returns>"
   
  -    let private runtimeHelpersGetHashCode =
  -        dottedMemberAccess' ["RuntimeHelpers"; "GetHashCode"]
  +    module private MemberAccess =
  +        let objectReferenceEquals = dottedMemberAccess' ["object"; "ReferenceEquals"]
  +        let debugAssert = dottedMemberAccess' ["Debug"; "Assert"]
  +        let stringIsInterned = dottedMemberAccess' ["string"; "IsInterned"]
  +        let runtimeHelpersGetHashCode = dottedMemberAccess' ["RuntimeHelpers"; "GetHashCode"]
   
       let private makeGetHashCode info =
           let returnGetHashCode =
               if internEnabled info then
                   // We can use the very fast GetHashCode that uses the reference address
  -                ret (invocation runtimeHelpersGetHashCode [|info.ThisValueMemberAccess|])
  +                ret (invocation MemberAccess.runtimeHelpersGetHashCode [|info.ThisValueMemberAccess|])
               else
                   // Need to call the real one
                   ret (getHashCode info.ThisValueMemberAccess)
  
positive.code:         SyntaxFactory.MethodDeclaration(TypeSyntax.Bool, "Equals")
          |> addModifiers [|SyntaxKind.PublicKeyword; SyntaxKind.OverrideKeyword|]
          |> addParameter parameterName TypeSyntax.Object
          |> addBodyStatement returnFalseForIncorrectType
          |?> (info.Id.EqualsUnderlying, addBodyStatement ifIsUnderlyingReturnEquals)
          |> addBodyStatement returnArgCastToIdValueEqualsValue
  
negative.code:         |> addModifiers [|SyntaxKind.PublicKeyword; SyntaxKind.StaticKeyword|]
          |> addParameter "a" info.GeneratedTypeSyntax
          |> addParameter "b" info.GeneratedTypeSyntax
          |> assertValueIsInternedIfNeeded info (value parameterA)
          |> assertValueIsInternedIfNeeded info (value parameterB)
          |> addBodyStatement body
  
      let private makeEquals info =
  