Hey @sritchie! The original issue that I found was that the class returned from `obj.elemManifest.erasure` is actually incorrect when `T` is marked as @specialized, e.g. `(Int,Int)`. Kryo picks up the right `Class` when you call `writeClassAndObject`. I just tried changing it to be `writeObject` as you suggest, however the new unit tests fail with this error:

```scala
[error]   x handle WrappedArray instances
[error]     java.lang.Object@37e31adc (of class java.lang.Object) (Predef.scala:281)
[error]     scala.Predef$.genericArrayOps(Predef.scala:281)
[error]     com.twitter.chill.WrappedArraySerializer.read(WrappedArraySerializer.scala:36)
```