anchor.diff:      let (|Int16|_|) t = test0<int16> t
       let (|Int32|_|) t = test0<int32> t
       let (|Int64|_|) t = test0<int64> t
  +    let (|IntPtr|_|) t = test0<nativeint> t
       let (|UInt16|_|) t = test0<uint16> t
       let (|UInt32|_|) t = test0<uint32> t
       let (|UInt64|_|) t = test0<uint64> t
  +    let (|UIntPtr|_|) t = test0<unativeint> t
       let (|Single|_|) t = test0<single> t
       let (|Double|_|) t = test0<double> t
       let (|Char|_|) t = test0<char> t
  
positive.code:             activate1 typedefof<TypeShape<_>> t
  
  
      let dict = new System.Collections.Concurrent.ConcurrentDictionary<Type, TypeShape>()
      let resolveTypeShapeCached(t : Type) = dict.GetOrAdd(t, resolveTypeShape (fun _ -> None))
  
  //////////////////////////////////
  
negative.code:         elif FSharpType.IsFunction t then
              let d,c = FSharpType.GetFunctionElements t
              activate2 typedefof<ShapeFSharpFunc<_,_>> d c
  
          elif FSharpType.IsRecord(t, allMembers) then
              let genTy = 
  