anchor.diff:  
   let check s b1 b2 = test s (b1 = b2)
   
  +type Assert =
  +    static member AreEqual msg (a, b) = check msg a b; (a = b)
  +
   type BasicNameOfTests() =
   
       static let staticConstant = 23
  
positive.code:         let t = typeof<AttributeNameOfTests>.GetMethod("ok in attribute")
          let attrs = t.GetCustomAttributes(typeof<ObsoleteAttribute>, false)
          let attr = attrs.[0] :?> ObsoleteAttribute
          Assert.AreEqual(attr.Message, "test string")
  
  type OperatorNameOfTests() =    
  
      member this.``lookup name of typeof operator`` () =
          let b = nameof(typeof<int>)
          Assert.AreEqual("typeof",b)
  
      member this.``lookup name of + operator`` () =
          let b = nameof(+)
          Assert.AreEqual("+",b)
          let b2 = nameof(op_Addition)
          Assert.AreEqual("op_Addition",b2)
          let b3 = nameof(FSharp.Core.Operators.(+))
          Assert.AreEqual("+",b3)
          let b4 = nameof(FSharp.Core.Operators.op_Addition)
          Assert.AreEqual("op_Addition",b4)
  
      member this.``lookup name of |> operator`` () =
          let a = nameof(|>)
          let result = Assert.AreEqual("|>",a)
          let b = nameof(op_PipeRight)
          result || Assert.AreEqual("op_PipeRight",b)
  
      member this.``lookup name of nameof operator`` () =
          let b = nameof(nameof)
          Assert.AreEqual("nameof",b)
  
  type PatternMatchingOfOperatorNameTests() =
      member this.Method1(i:int) = ()
  
negative.code: 
      member this.``single argument method group name lookup`` () =
          let b = nameof(this.MethodGroup)
          Assert.AreEqual ("line " + string __LINE__) ("MethodGroup",b)
  
      member this.``multiple argument method group name lookup`` () =
          let b = nameof(this.MethodGroup1 : (float * int64 -> _))
          Assert.AreEqual ("line " + string __LINE__) ("MethodGroup1",b)
  
  type FrameworkMethodTests() =
      member this.``library function name`` () =
          let b = nameof(List.map)
          Assert.AreEqual ("line " + string __LINE__) ("map",b)
  
      member this.``static class function name`` () =
          let b = nameof(System.Tuple.Create)
          Assert.AreEqual ("line " + string __LINE__) ("Create",b)
  
  type CustomUnionType =
      | OptionA 
  