anchor.diff:          | TypeCode.Single -> upcast reader.ReadSingle()
           | _ -> failwith <| sprintf "Unknown primitive type %A" objType
   
  -    let readMemoryBlittableArray (elType: Type, arrObj: Array, memStream: MemoryStream) =
  -        let elemSize = (typeSerializer.GetSerTypeInfo elType).GetSize()
  +    let readMemoryBlittableArray (arrObj: Array, elemSize: int, memStream: MemoryStream) =
           match memStream with
               | :? BufferListStream<byte> as ms ->
                   ms.ReadArrT(arrObj, 0, arrObj.Length, elemSize) |> ignore
  
positive.code: 
      let DeserConstructorArgTypes = [| typeof<SerializationInfo>; typeof<StreamingContext> |]
  
      member private this.ReadArray (elType: Type, lowerBounds: int[], lengths: int[], arrObj: Array) =
          if elType.IsPrimitive then
              readPrimitiveArray elType arrObj
          elif elType.IsValueType then 
              readValueArray (typeSerializer.GetSerTypeInfo elType) lowerBounds lengths arrObj
          else 
              readObjectArray lowerBounds lengths arrObj
  
      member private this.ReadContents (objType: SerTypeInfo, obj: byref<obj>) : unit = 
          for field in objType.SerializedFields (* objType.GetFields(Serialize.AllInstance)*) do 
              let fieldType = field.FieldType
              if fieldType.IsPrimitive then
                  let value = readPrimitive fieldType
  
negative.code:             | TypeCode.Double -> let arr = arrObj :?> Double[] in arr |> Array.iteri (fun i _ -> arr.[i] <- reader.ReadDouble())
              | TypeCode.Single -> let arr = arrObj :?> Single[] in arr |> Array.iteri (fun i _ -> arr.[i] <- reader.ReadSingle())
              | TypeCode.Decimal | TypeCode.DateTime | TypeCode.DBNull | TypeCode.String | TypeCode.Object | TypeCode.Empty | _ -> 
                  failwith <| sprintf "Unknown primitive type %A" (arrayTypeInfo.Type.GetElementType())
          match reader.BaseStream with
          | :? MemoryStream as memStream -> 
              fun (arrayTypeInfo: SerTypeInfo) (arrObj: Array) -> 
                  readMemoryBlittableArray (arrObj, arrayTypeInfo.GetElementSize(), memStream)
          | _ -> readPrimitiveArrayOneByOne
  
      let readValueArray : SerTypeInfo -> int[] -> int[] -> Array -> unit = 
  